事件原始和克隆HTML块之间进行区分

问题描述:

我使用jquery 1.3,事件原始和克隆HTML块之间进行区分

当我克隆与克隆(真)的元件的所有数据+事件被复制,但问题是 的事件之间进行区分原始的html块和克隆的html块。

当我尝试将事件触发到克隆的html块时,原始html块的事件也被解雇。

所以现在的大问题是如何

结账的事件代码区分在这里jsfiddle.net/BbBqJ/1

+0

你能发布你的代码吗?这通常不会发生,所以可能还有其他一些问题。下面是一个使用jQuery 1.3.2的例子,它显示了干净的分隔:http://jsfiddle.net/BbBqJ/(除非你使克隆成为原来的后代?) – user113716 2010-07-16 17:02:12

+0

以及它的大代码,让我创建一个管理它 – Hunt 2010-07-16 17:15:45

+0

http://jsfiddle.net/BbBqJ/1/链接到代码时,我按下添加更多 它在下一个框中添加文本框也 – Hunt 2010-07-16 17:31:26

当你有一个像$('.edit')例如一个选择,你选择页面上元素的所有

要将选择器集中到有限的上下文中,可以传递第二个参数。所以我所做的就是将您创建的新元素存储到一个名为$box的变量中,然后将其作为$('.edit', $box)的上下文进行传递。

我对代码进行了其他更改以清理干净。

http://jsfiddle.net/sxkxp/1/

同样,只记得好像.edit选择是影响所有页面上存在的那些元素。

+0

感谢您的帮助,但如果我分配不同的类名为克隆块跟踪块,如果我点击addmore然后我可以看到,事件的上下文属于原始块只有http://jsfiddle.net/sxkxp/7/ – Hunt 2010-07-17 06:50:43

+1

@Hunt - 其实,你可以看到上下文是正确的,因为新的''显示在正确的位置。你看到旧类名弹出的原因是你正在做'alert($ newBox.attr('class'))'',其中'$ newBox'仍然指向用于创建框的变量。该变量与处理程序的其余部分一起被克隆。但你不再需要它了。试着将这个提示放在alert($ box.attr('class'))''的下一行,你会发现你是正确的。请注意我在示例中的其他评论:http://jsfiddle.net/sxkxp/9/ – user113716 2010-07-17 12:30:02

+0

非常感谢帕特里克的帮助,你能告诉我如何能够抛光jquery的知识作为工作之后这么多的时间,我刚才才知道,可以通过第二个参数作为你的上下文:) – Hunt 2010-07-18 10:52:56

使用事件目标,它应该只与事件的起源互动...

$("something").bind("click", function (event) { 
    $(event.target).css("border", "1px solid #f00"); 
});