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

1. 问题描述

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

2. 案例

2.1 单值传参


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

2.2 多值传参


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

2.3 对象传参


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

3. 总结

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

猜你喜欢

转载自blog.csdn.net/sinat_35172724/article/details/86002089