如何检查jQuery句柄是打开还是关闭?

时间:2013-06-20 21:09:37

标签: javascript jquery handle

我的js代码中有以下内容......

    a.off('mouseover').on('mouseover', function() {
        overlayTrigger(this);
    });
    a.off('click').on('click', function() {
        overlayTrigger(this, true);
    });

然后在鼠标点击期间,我将其删除:

    $(obj).off('mouseover');
    $(obj).off('mouseout');

但我希望下一次鼠标点击,如果这些句柄关闭,我想重新启用它们......但是,我不知道如何检查'鼠标悬停'是否关闭......

通过谷歌挖掘是有点困难的,因为关键词“on”和“off”以及“mouseover”不是找到我想要的方法...>。<

任何帮助/提示都将不胜感激。 :)

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery.data获取绑定到对象的事件列表。

如果您使用的是jQuery 1.8或更高版本,则需要使用以下内容:

jQuery post here.

$._data(elem, 'events');

elem应该是HTMLElement, NOT 是jQuery对象或选择器。如果您已有jQuery对象,则可以将elem替换为elem.get(0)

jQuery版本低于1.8:

$(elem).data('events');

这将返回包含事件的对象。然后,您可以检查它们是否未定义。

注意:请记住,如果元素上没有事件处理程序,则数据将以 undefined 的形式返回。

答案 1 :(得分:0)

重新启用它们时,你可以这样做

$(obj).off('mouseover').on('mouseover',function(){...});