javascript 指定绑定函数名称,并且传递参数

 
<html>  
 <head>  
  <title> New Document </title>  
    <script type="text/javascript" src="jquery-1.11.1.min.js"></script>  
  </head>  
 <body>  
    <div id="div1" value="div1Value" style="border: 1px red solid;padding:5px;">
        <input type='button' value='按钮' id='cbutton1' name='cbutton1'/>
    </div>  
 </body>  
 <script type="text/javascript">  
$(function(){
    $("#cbutton1").bind("click",{"id":"111","name":"aaa"},getData);  
  
    function getData(event){  
        debugger;
        console.log(event.data.id);  
        console.log(event.data["name"])  
        var dd=JSON.stringify(event.data);//将传过来的参数转换成json字符串  
        console.log(dd);  
    }  
});

  </script>  
</html>  

$("#cbutton1").bind("click",{"id":"111","name":"aaa"},getData);

这一句给 cbutton1 指定了 click 事件的绑定函数为 getData,并且向该函数传递了JSON格式参数 {"id":"111", "name":"aaa"}.

在函数 getData 中可以获取到传递过来的参数:

function getData(event){

    var param = event.data;

}

在一些特殊情况下可能需要使用这种方式进行指定函数名称的事件绑定,而不能使用匿名函数来处理,因为,我们可能需要进行针对性的清理:

$("#cbutton1").off("click", getData);

比如 cbutton1 上有多个 click 事件的处理函数,我需求清理某一个 处理函数,此时就需要如上这样进行处理了,而不能使用匿名函数。

$("#cbutton1").off("click");

这样会清理 cbutton1 上的所有处理函数。也是不行的。

原文地址:https://www.cnblogs.com/digdeep/p/6829669.html