一个函数触发一个事件并传递一些数据,然后这些数据可能会被一个监听器处理。如果没有,该功能想要自己处理数据。好吧,因为我不知道包裹是否被处理,我的想法是找出是否有听众。有没有办法做到这一点,还是有人对我的问题有更好的想法?
提前致谢!
答案 0 :(得分:2)
你可以使用jQuery之前的jQuery这样:
<script src="http://code.jquery.com/jquery-1.6.min.js"></script>
<script>
$(document).ready(function() {
$("#click_here").click(function() {
alert("Handler for .click() called.");
});
console.log( $('#click_here').data('events') );
});
</script>
<div id="click_here">Click here</div>
答案 1 :(得分:1)
我创建了一个主要用于测试的插件。
// Example usage
$('.foo').hasEvent('click', someHandler)
// returns true if someHandler is bound via jQuery on '.foo'
// for the click event
该插件经过测试,可与jQuery 1.7及更高版本一起使用
答案 2 :(得分:1)
我有一个非常类似的问题。它从未在jquery中得到适当的支持,而是一种黑客攻击。因此,您可以使用
在jquery版本1.8之前执行此操作 data('events')
1.8之后,您可以使用:
$._data( $('.element')[0], 'events' );
但是如果您正在尝试做我正在做的事情......请确保事件处理程序仅在控件上分配一次(即在某些表单验证后保存按钮),然后您可以:
$('element').unbind('event');
$('element').on('click', save);