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

时间:2014-07-17 07:48:12

标签: javascript jquery events

使用以下代码:

<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事件注册到通过div1中的ajax动态添加的元素?

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

只会将事件注册到#div1或其后代的直接孩子?

1 个答案:

答案 0 :(得分:1)

您可以轻松地将事件处理程序附加到动态元素,您必须编写一些不同的内容:

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

看看这个Demo,Cheers Jan