0

如标题所示,我正在尝试在以前未绑定的 DIV 对象上重新绑定“mouseleave”事件。

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

工作得很好。

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

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

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

4

3 回答 3

1

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

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

// a handler method
function myfunction(){
}

myfunction对先前注册的处理程序方法的引用在哪里

于 2013-09-02T10:42:41.333 回答
0

尝试这个

document.getElementById(previousRepId).onmouseleave= fun;

或者

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

fun您要绑定的方法在哪里。

于 2013-09-02T10:43:29.850 回答
0

基本上,您必须在绑定事件时传递一个处理程序。您想重新附加以前的 unbound 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); });
});

演示 jsFiddle

于 2013-09-02T12:23:42.363 回答