Jquery 使用.append()单击事件有效,但使用.after()失败

Jquery 使用.append()单击事件有效,但使用.after()失败,jquery,Jquery,这件事很有道理。你知道为什么会这样吗 $('.myclass div').append(' <a ">HELLO WORLD</a>').click(this.function); $('.myclass div')。追加('HELLO WORLD')。单击(this.function); 谢谢 在这两种情况下,您都将处理程序添加到最初选择的div。由于事件冒泡,即使处理程序位于的父级,第一个事件仍然可以工作 如果要在div之后添加a元素,则需要直接绑定到a 您可以使

这件事很有道理。你知道为什么会这样吗

$('.myclass div').append(' <a ">HELLO WORLD</a>').click(this.function);
$('.myclass div')。追加('HELLO WORLD')。单击(this.function);

谢谢

在这两种情况下,您都将处理程序添加到最初选择的
div
。由于事件冒泡,即使处理程序位于
的父级,第一个事件仍然可以工作

如果要在
div
之后添加
a
元素,则需要直接绑定到
a

您可以使用
.insertAfter()
来完成此操作

$('<a>HELLO WORLD</a>').insertAfter('.myclass div').click(this.function);
$('HELLO WORLD').insertAfter('.myclass div')。单击(this.function);

在这两种情况下,您都将处理程序添加到最初选择的
div
。由于事件冒泡,即使处理程序位于
的父级,第一个事件仍然可以工作

如果要在
div
之后添加
a
元素,则需要直接绑定到
a

您可以使用
.insertAfter()
来完成此操作

$('<a>HELLO WORLD</a>').insertAfter('.myclass div').click(this.function);
$('HELLO WORLD').insertAfter('.myclass div')。单击(this.function);

以防万一,这里是
.after()
.insertAfter()
之间的区别:您也可以使用
end()
$('.myclass div')。after('@elclars:有点。如果您在那里使用
.end()
,您仍然在使用
$('.myclass div')中的原始jQuery对象
,因此看起来好像
.end()
提供了上下文,在本例中是
HTMLDocument
,因此这就是
单击处理程序的原因。以防万一,这里是
.after()
.insertAfter()
之间的区别:您也可以像
$('.myclass div')一样使用
end()
('@elclars:Sort.如果您在那里使用
.end()
,您仍然在使用
$('.myclass div')
中的原始jQuery对象,因此它看起来好像
.end()
为您提供了上下文,在本例中是
HTMLDocument
,因此这就是
单击
处理程序的内容。