JS绑定事件传参(用于加载页面后trigger传递参数,方便程序控制初始化)

1. 问题描述

当页面第一次加载的时候,主动触发绑定的事件与用户触发绑定事件不完全相同的时候,可以使用js绑定事件传参。

2. 案例

2.1 单值传参


 
 
   
   
   
   
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>Title title>
  5. <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"> script>
  6. <script>
  7. $( function () {
  8. //单值传参
  9. $( "#btn").on( "click", function (event,user) {
  10. alert(user); //弹窗传递的参数
  11. if(user == "user"){
  12. $( "#appendDom").empty(); //清除里面的dom
  13. $( "#appendDom").append( "我是初始化显示出来的。"); //添加
  14. } else{
  15. $( "#appendDom").empty(); //清除里面的dom
  16. $( "#appendDom").append( "我是被用户点击显示出来的。"); //添加
  17. }
  18. });
  19. var user = "user";
  20. //页面JS加载完毕就触发一次
  21. //trigger 第一个参数是绑定事件类型,第二个参数是object类型,即传递的参数
  22. $( "#btn").trigger( "click",user);
  23. })
  24. script>
  25. head>
  26. <body>
  27. <button id="btn">请点击我 button>
  28. <div id="appendDom"> div>
  29. body>
  30. html>

2.2 多值传参


 
 
   
   
   
   
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>Title title>
  5. <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"> script>
  6. <script>
  7. $( function () {
  8. //多值传参
  9. $( "#btn").on( "click", function (event,user,tom) {
  10. alert(user); //弹窗传递的参数
  11. alert(tom); //弹窗传递的参数
  12. if(user == "user"){
  13. $( "#appendDom").empty(); //清除里面的dom
  14. $( "#appendDom").append( "我是初始化显示出来的。"); //添加
  15. } else{
  16. $( "#appendDom").empty(); //清除里面的dom
  17. $( "#appendDom").append( "我是被用户点击显示出来的。"); //添加
  18. }
  19. if(tom == "tom"){
  20. $( "#appendDom").append( "tom初始化显示。"); //添加
  21. }
  22. });
  23. var user = "user";
  24. var tom = "tom";
  25. //页面JS加载完毕就触发一次
  26. //trigger 第一个参数是绑定事件类型,第二个参数是object类型,即传递的参数
  27. $( "#btn").trigger( "click",[user,tom]);
  28. })
  29. script>
  30. head>
  31. <body>
  32. <button id="btn">请点击我 button>
  33. <div id="appendDom"> div>
  34. body>
  35. html>

2.3 对象传参


 
 
   
   
   
   
  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>Title title>
  5. <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"> script>
  6. <script>
  7. $( function () {
  8. //对象传参
  9. $( "#btn").on( "click", function (event,user) {
  10. alert(user); //弹窗传递的参数
  11. if(user != undefined){
  12. $( "#appendDom").empty(); //清除里面的dom
  13. $( "#appendDom").append( ""+user.name+ " 是 "+user.age+ " 岁了。"); //添加
  14. } else{
  15. $( "#appendDom").empty(); //清除里面的dom
  16. $( "#appendDom").append( "我是被用户点击显示出来的。"); //添加
  17. }
  18. });
  19. var user = new Object();
  20. user.name = "张三";
  21. user.age= 22;
  22. //页面JS加载完毕就触发一次
  23. //trigger 第一个参数是绑定事件类型,第二个参数是object类型,即传递的参数
  24. $( "#btn").trigger( "click",user);
  25. })
  26. script>
  27. head>
  28. <body>
  29. <button id="btn">请点击我 button>
  30. <div id="appendDom"> div>
  31. body>
  32. html>

3. 总结

  1. trigger第二个参数是object类型,只有两个参数。
  2. 绑定事件函数,可以接收多个参数,如果trigger第二个参数是数组类型的话。
  3. 绑定事件函数,第一个参数event必须写,因为第一个参数默认传递的是event,所以需要占位。
  4. 用于初始化和绑定事件并不完全一致的情况下。

你可能感兴趣的:(JS,前端)