猿问

测试事件处理程序是否绑定到jQuery中的元素

测试事件处理程序是否绑定到jQuery中的元素

是否可以确定元素是否具有单击处理程序,或更改处理程序,或使用jQuery绑定到它的任何类型的事件处理程序?

此外,是否可以确定它对于给定类型的事件有多少点击处理程序(或任何类型的事件处理程序),以及事件处理程序中有哪些功能?


慕姐8265434
浏览 381回答 3
3回答

慕雪6442864

您可以从数据缓存中获取此信息。例如,将它们记录到控制台(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() );    });});

墨色风雨

当绑定不存在时终止绑定不是最好的解决方案,但似乎足够有效!第二次“点击”时,您可以肯定地知道它不会创建重复的绑定。因此我使用die()或unbind(),如下所示:$("#someid").die("click").live("click",function(){...要么$("#someid").unbind("click").bind("click",function(){...或者在最近的jQuery版本中:$("#someid").off("click").on("click",function(){...
随时随地看视频慕课网APP
我要回答