繁体   English   中英

jQuery取消绑定点击不起作用

[英]jquery unbind click doesn't work

请帮我一下。谢谢! 这是简单的编码:

var $newbox = $( "<div/>" );
$newbox.addClass("init_box");
for(i=0; i<3; i++) {
    $("#game").append($newbox.clone().click(function(){
        $(this).addClass("select_box"); 
        $("div.init_box").unbind("click");
    }));
}

我想创建3个div,一旦单击了这3个div中的任何一个,其他人将取消绑定click事件。 但是上面的代码不起作用。

如果要使用.unbind(),则需要使用.bind()绑定单击处理程序。

我将使用。对().off()与像名称空间的事件处理程序

var $newbox = $('<div/>', {
    'class': 'init_box'
}).on('click.select', function () {
    $(this).addClass("select_box");
    $("#game .init_box").off("click.select");
});

for (i = 0; i < 3; i++) {
    $newbox.clone(true, true).appendTo('#game').html(i)
}

演示: 小提琴

这应该工作。

var $newbox = $( "<div/>" );
$newbox.addClass("init_box");
for(i=0; i<3; i++) {
    $newbox.clone().appendTo("#game").click(function(){
        $(this).addClass("select_box"); 
        $("div.init_box").unbind("click");
    });
}

在您的示例中,您试图在将处理程序插入到DOM中之前将其添加到该对象中,但这是行不通的。

您必须首先将其插入DOM,然后添加处理程序。

或者,您可以使用实时绑定。 http://api.jquery.com/on/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM