Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以将插入的代码与jquery一起用于新使用的jquery吗_Javascript_Jquery - Fatal编程技术网

Javascript 我可以将插入的代码与jquery一起用于新使用的jquery吗

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>');

例如:当点击aaa按钮时,“bbb”按钮被插入,但稍后当点击bbb按钮时,我没有allert。为什么?

<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");
});