在 DOM 中添加新元素后,该元素无法识别旧脚本
After adding a new element in the DOM, the element does not recognize old script
>我有一个问题。在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/
相关文章:
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 浏览器是否持久缓存脚本元素的编译版本
- 如何使用java脚本或jQuery基于相同的特定css属性对元素进行分组
- 如何使用以下脚本在单击时显示树结构的元素
- 无法通过内容脚本使用jQuery更改HTML元素的样式
- AJAX和php脚本后添加的表单元素未传输到$_POST
- 如何调用绑定到angular元素的java脚本函数
- 注入的元素和jQuery脚本.如何让他们一起工作
- 动态添加的输入元素不会在脚本中返回值
- 火虫找到隐藏我的元素的脚本
- 如何在呈现页面后使用 Java 脚本检测 dom 元素值的值是否有任何变化(例如,任何输入或复选框值更改)
- 从外部 js 脚本创建元素并插入到 html 中
- jQuery:调用脚本时隐藏元素
- 使用java脚本在html中插入元素
- 创建一个本地脚本来操作网站中的DOM元素
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 如何在加载表单时获得对Builder配置的Jenkins果冻脚本中表单元素的引用
- 如何将 DOM 元素脚本添加到头部分
- 如何向内容添加元素(脚本)
- 来自 W3C 验证程序的错误“元素脚本不得具有属性延迟,除非还指定了属性 src”