在 DOM 中添加新元素后,该元素无法识别旧脚本

After adding a new element in the DOM, the element does not recognize old script

本文关键字:元素 脚本 识别 DOM 添加 新元素      更新时间:2023-09-26

>我有一个问题。在DOM中添加新元素后,该元素无法识别旧脚本和本文档中的相同功能,如何解决此问题?如何重新加载脚本

<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<div id='content'>Content.....</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
<script src='js/script.js' type='text/javascript'></script>
</body>
</html>


//          script.js         //
$('#content').click(function(){
    $('body').append('<div id="apended">Click me!</div>');
});

$('#apended').click(function(){
    alert('click!');
});

当您使用 .on('click', function (e) {}) 函数时,它仅适用于现有元素。要处理所有选择器元素上的单击事件,即使是将来将添加的元素,也可以使用以下函数之一:

$(document).on('click', "#appended", function (e) {
    // some code code
    alert('click!');
});

或:

$("body").delegate("#appended", "click", function () {
    // your code goes here
    alert('click!');
});

有关详细信息,请阅读有关了解事件委派的文章

代替点击功能 您可以使用:

  1.live(old version)
  2.delegate
  3.on

但是,如果你想使用带有委托函数的突变的点击:

var myFn=function(e){
 if(e.target.id=='apended'){
        alert('click');
   }
}
$(document).click(myFn)

演示 :http://jsfiddle.net/abdennour/7cyjV/