jQuery - 重新绑定以前未绑定的鼠标离线'事件

时间:2013-09-02 10:40:21

标签: bind jquery

在标题中,我试图在DIV对象上重新绑定'mouseleave'事件, 以前没有绑定。

$(object).unbind('mouseleave');

工作正常。

$(object).bind('mouseleave');

没有。 这样做的正确方法是什么?

我在这里上传了jsFiddle example 如您所见,.bind()处理程序不起作用......

3 个答案:

答案 0 :(得分:1)

绑定事件处理程序时,还需要传递处理函数引用

$(object).bind('mouseleave', myfunction);

// a handler method
function myfunction(){
}

其中myfunction是对先前注册的处理程序方法的引用

答案 1 :(得分:0)

试试这个

document.getElementById(previousRepId).onmouseleave= fun;

$(object).bind('mouseleave', fun);

其中fun是要绑定的方法。

答案 2 :(得分:0)

基本上,绑定事件时必须传递处理程序。您想重新附加以前未绑定的mouseleave event,但由于处理程序是匿名函数,因此您没有引用它。
解决方案是将处理程序分配给变量以供以后使用。

$(document).ready(function(){
    var handlerIn = function(){ console.log('in')},
        handlerOut = function(){ console.log('out')};

    $('.mydiv').hover(handlerIn, handlerOut);

    $('.remove').click(function(){ $('.mydiv').unbind('mouseleave', handlerOut); });
    $('.add').click(function(){ $('.mydiv').bind('mouseleave', handlerOut); });
});

<强> demo jsFiddle