事件原始和克隆HTML块之间进行区分
我使用jquery 1.3,事件原始和克隆HTML块之间进行区分
当我克隆与克隆(真)的元件的所有数据+事件被复制,但问题是 的事件之间进行区分原始的html块和克隆的html块。
当我尝试将事件触发到克隆的html块时,原始html块的事件也被解雇。
所以现在的大问题是如何
结账的事件代码区分在这里jsfiddle.net/BbBqJ/1
当你有一个像$('.edit')
例如一个选择,你选择页面上元素的所有。
要将选择器集中到有限的上下文中,可以传递第二个参数。所以我所做的就是将您创建的新元素存储到一个名为$box
的变量中,然后将其作为$('.edit', $box)
的上下文进行传递。
我对代码进行了其他更改以清理干净。
同样,只记得好像.edit
选择是影响所有页面上存在的那些元素。
感谢您的帮助,但如果我分配不同的类名为克隆块跟踪块,如果我点击addmore然后我可以看到,事件的上下文属于原始块只有http://jsfiddle.net/sxkxp/7/ – Hunt 2010-07-17 06:50:43
@Hunt - 其实,你可以看到上下文是正确的,因为新的''显示在正确的位置。你看到旧类名弹出的原因是你正在做'alert($ newBox.attr('class'))'',其中'$ newBox'仍然指向用于创建框的变量。该变量与处理程序的其余部分一起被克隆。但你不再需要它了。试着将这个提示放在alert($ box.attr('class'))''的下一行,你会发现你是正确的。请注意我在示例中的其他评论:http://jsfiddle.net/sxkxp/9/ – user113716 2010-07-17 12:30:02
非常感谢帕特里克的帮助,你能告诉我如何能够抛光jquery的知识作为工作之后这么多的时间,我刚才才知道,可以通过第二个参数作为你的上下文:) – Hunt 2010-07-18 10:52:56
使用事件目标,它应该只与事件的起源互动...
$("something").bind("click", function (event) {
$(event.target).css("border", "1px solid #f00");
});
你能发布你的代码吗?这通常不会发生,所以可能还有其他一些问题。下面是一个使用jQuery 1.3.2的例子,它显示了干净的分隔:http://jsfiddle.net/BbBqJ/(除非你使克隆成为原来的后代?) – user113716 2010-07-16 17:02:12
以及它的大代码,让我创建一个管理它 – Hunt 2010-07-16 17:15:45
http://jsfiddle.net/BbBqJ/1/链接到代码时,我按下添加更多 它在下一个框中添加文本框也 – Hunt 2010-07-16 17:31:26