jquery unbind点击不起作用

时间:2013-10-22 01:59:43

标签: javascript jquery unbind

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

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中的任何一个,那么其他人将解除绑定 点击事件。但上面的代码不起作用。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我会将.on().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)
}

演示:Fiddle

答案 2 :(得分:0)

这应该有用。

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/