-1

我正在尝试jQuery mouseentermouseleave事件一起玩,但失败了。

这是我想要做的

$("#selector").mouseenter(function(){
        some code....
        jQuery(this).off('mouseenter'); 
    }
);
$("#selector").mouseleave(function(){
    some code....
    jQuery(this).on('mouseenter');
});

在这.off()工作,但不幸.on的是没有工作。

有人能帮我一下吗?

提前谢谢。

>

编辑:对不起,我上述问题中的信息较少。

我需要打开工具提示mouseenter并在该工具提示中有一些按钮。此工具提示附加在同一 div 中。因此,当我尝试单击工具提示中的按钮时,它会调用mouseenter事件,因此工具提示会再次附加到 div 中。.off()因此,一旦调用 tooptip 直到鼠标不离开选择器,我就会调用事件。

如果您需要更多信息,请与我们联系。

再次感谢。

4

3 回答 3

1

您需要将事件重新绑定到处理程序。$(this).on('mouseenter');不会将任何处理程序绑定到它。

尝试使用函数绑定为处理程序,以便它可以再次绑定,而on不是off使用.one

$("#selector").one('mouseenter', selMouseEnter);

$("#selector").mouseleave(function(){
    some code....
    $("#selector").one('mouseenter', selMouseEnter);
});

function selMouseEnter () {
    some code....
}

编辑:您尝试做的事情可以使用.hover或简单地实现.mouseenter.mouseleave功能来实现。无需bind/unbind在 mouseenter 和 mouseleave 上调用一次这些函数。

于 2012-04-05T15:13:05.973 回答
0

和方法不用于打开onoff关闭事件,它们用于绑定和取消绑定事件。

所以这:

$("#selector").mouseenter(function(){
  some code....
});

与以下内容相同:

$("#selector").on("mouseenter", function(){
  some code....
});

和:

$("#selector").bind("mouseenter", function(){
  some code....
});

当鼠标悬停在元素上时,您不必取消绑定事件,只需处理mouseenterandmouseleave事件:

$("#selector").mouseenter(function(){
  some code....
}).mouseleave(function(){
  some code....
});
于 2012-04-05T15:12:31.433 回答
0

您可以通过以下方式简单地实现您想要做的事情:

$("#selector").mouseenter(function(){
    some code....
}).mouseleave(function(){
    some code....
});

不需要重新绑定和解除绑定。

另外,你用.on错了,你也需要传递一个函数。请参阅.on文档

于 2012-04-05T15:17:33.250 回答