请帮我一把。谢谢!这是简单的编码:
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中的任何一个,那么其他人将解除绑定 点击事件。但上面的代码不起作用。
答案 0 :(得分:2)
如果要使用.unbind();则需要使用.bind()绑定单击处理程序。
答案 1 :(得分:1)
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/