我如何知道jQuery中的元素是否有特定的侦听器?

时间:2010-01-14 15:27:17

标签: jquery events

或者我如何知道以下是否已经运行:

$target.bind('click',function() {
...
});

4 个答案:

答案 0 :(得分:0)

我使用visual event bookmarklet向我显示哪些项目有事件。

答案 1 :(得分:0)

您可以访问jQuery.data对象以查找:

$.fn.isBound = function() {
    return this.length && typeof $.data(this[0], 'handle') == 'function' || false;
}

if ($target.isBound()) {
    // $target has events
}

更新:如果要检查特定类型,可以查看events对象:

$.fn.isBound = function(type) {
    return this.length && $.data(this[0], 'events')[type] || false;
}

if ($target.isBound('click')) {
    // $target has clickevents
}

答案 2 :(得分:0)

借用并延伸大卫的例子,请使用:

if(typeof $('#id').click == 'function') {}

答案 3 :(得分:0)

您可以使用$ ._数据。 例如

$target.bind('click',function() {
...
});

$._data( $target[0], 'events'); // Object {click: Array[1]}