测试事件处理程序是否绑定到jQuery中的元素是否可以确定元素是否具有单击处理程序,或更改处理程序,或使用jQuery绑定到它的任何类型的事件处理程序?此外,是否可以确定它对于给定类型的事件有多少点击处理程序(或任何类型的事件处理程序),以及事件处理程序中有哪些功能?
3 回答
![?](http://img1.sycdn.imooc.com/545847f50001126402200220-100-100.jpg)
慕雪6442864
TA贡献1812条经验 获得超5个赞
您可以从数据缓存中获取此信息。
例如,将它们记录到控制台(firebug,ie8):
console.dir( $('#someElementId').data('events') );
或者迭代它们:
jQuery.each($('#someElementId').data('events'), function(i, event){
jQuery.each(event, function(i, handler){
console.log( handler.toString() );
});
});
![?](http://img1.sycdn.imooc.com/54585094000184e602200220-100-100.jpg)
墨色风雨
TA贡献1853条经验 获得超6个赞
当绑定不存在时终止绑定不是最好的解决方案,但似乎足够有效!第二次“点击”时,您可以肯定地知道它不会创建重复的绑定。
因此我使用die()或unbind(),如下所示:
$("#someid").die("click").live("click",function(){...
要么
$("#someid").unbind("click").bind("click",function(){...
或者在最近的jQuery版本中:
$("#someid").off("click").on("click",function(){...
添加回答
举报
0/150
提交
取消