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

标签 javascript jquery dom append

我有一个问题。在 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!');
});

有关更多信息,请阅读有关 Understanding Event Delegation 的文章

关于javascript - 在 DOM 中添加新元素后,该元素无法识别旧脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19742518/

相关文章:

javascript - 无法使用方法(传递)索引作为参数从数组中检索数据

javascript - 模式中的按钮不起作用

javascript - 在悬停时更改 CSS writen 文本框中的特定字符颜色

dom - 我可以一次性将 Ajax 请求 XML 对象追加到我的文档树中吗?

javascript - 在使用数万个索引的 Javascript 中使用数组是否可取?

javascript - jQuery:在特定窗口大小中添加或删除函数

javascript - 在 OpenLayers 3 中选择功能时是否有事件?

jquery - 切换多个内容并向切换链接添加文本

jquery - 向 DOM 添加大量元素

javascript - 使用其 innerHTML 查找元素