Javascript 我可以将插入的代码与jquery一起用于新使用的jquery吗
例如:当点击aaa按钮时,“bbb”按钮被插入,但稍后当点击bbb按钮时,我没有allert。为什么?Javascript 我可以将插入的代码与jquery一起用于新使用的jquery吗,javascript,jquery,Javascript,Jquery,例如:当点击aaa按钮时,“bbb”按钮被插入,但稍后当点击bbb按钮时,我没有allert。为什么? <button id="aaaa">aaaa</button> <div id="abc"></div> <script> $("#aaaa").click(function() { $("#abc").html('<button id="bbb">bbb</button>');
<button id="aaaa">aaaa</button>
<div id="abc"></div>
<script>
$("#aaaa").click(function() {
$("#abc").html('<button id="bbb">bbb</button>');
});
$("#bbb").click(function() {
alert("sasasa");
});
</script>
aaaa
$(“#aaaa”)。单击(函数(){
$(“#abc”).html('bbb');
});
$(“#bbb”)。单击(函数(){
警报(“sasasa”);
});
基本上,您的$(“#bbb”)
没有返回匹配项,因此根本不注册单击事件。该元素只在以后存在
动态添加项时,您需要使用委托事件处理程序,该处理程序附加到元素的非更改祖先:
e、 g
此版本的on
在事件发生时应用jQuery选择器,因此该元素在事件发生之前(而不是在事件注册时)不需要存在
文档
是默认值,如果没有其他更接近/更方便的内容。不要使用body,因为它有一个bug(与样式有关)。在您的示例中,您可能希望附加到“#abc”
e、 g
使用此代码:
$("#abc").on(click,'#bbb',function() {
alert("sasasa");
});
因为您需要使用委派事件来对添加到DOM的元素使用jquery,在本例中,他已经被无数次地询问和回答,他可以使用DOM中已经存在的第一个父元素:因此包含新button@Lelio费埃塔:已经建议了,并且已经在描述中添加了。速度差是可以忽略的,因为它是在用户点击速度下。关于性能,你是对的。出于代码可读性的考虑,我不希望使用文档(无论如何,这只是我自己的观点):)
$('#abc').on('click', "#bbb", function() {
alert("sasasa");
});
$("#abc").on(click,'#bbb',function() {
alert("sasasa");
});