0

我的 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”不是找到我想要的东西的方法...... >.<

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

4

2 回答 2

1

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

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

jQuery 在这里发布。

$._data(elem, 'events');

elem应该是 HTMLElement,而不是jQuery 对象或选择器。如果你已经有一个 jQuery 对象,你可以使用 replace elemwith elem.get(0)

1.8以下的jQuery版本:

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

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

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

于 2013-06-20T21:43:24.643 回答
0

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

$(obj).off('mouseover').on('mouseover',function(){...});
于 2013-06-20T21:12:38.750 回答