如何将jquery事件注册到非子元素的动态添加元素

how to register jquery events to dynamically added elements which are not child elements

本文关键字:元素 动态 添加 jquery 事件 注册      更新时间:2023-09-26

使用以下代码:

<html>
<head>
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$j = JQuery.noConflict();
function test() {
  $j("#li1").on(
        "click",
        function() {$j.ajax({
            url : "user/create_user_view",
            success : function(result) {
                $j("#div1").html(result);
            }
          });
        });
}//test()
$j(function(){
test();
});
</script>
</head>
 <body>
  <ul>
    <li id="li1">li1</li>
    <li id="li2">li2</li>
 </ul>
 <div id="div1">div1</div>
 <div id="div2">div2</div>
</body>
</html>

实际上ajax调用的结果是一个html文件,这确实是一个表单,我想将事件注册到.html文件的添加元素,我知道$("parent-selector").on("event","child-selector",callback(){ // code here });

如何注册js事件的元素动态添加通过ajax在div1?

更新:我的问题是使用$("parent-selector").on("event","child-selector",callback(){ // code here });

将注册事件只指向子#div1或它的后代?

你可以很容易地把事件处理程序附加到动态元素上,你必须写得有点不同:

$('body').on('click', '.myDynamicElement', function(ev) {
    // Do your stuff in here...
});

看一下这个Demo, Cheers Jan