所以我有一些代码,我在pageload之后向DOM添加了一个元素(下面的例子中的第二个链接)但是这个新添加的元素忽略了为它定义的所有函数.因此,对于下面的示例,我希望div中的所有链接都与测试类一起显示警报.适用于硬编码的链接,但之后添加的链接忽略它.
<html>
<head>
<title>SO Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<div class="test">
<a href="#" title="Test">Test Link</a>
</div>
<script type="text/javascript">
<!--
$(document).ready(function() {
$("div.test a").click(function() {
alert("click");
return false;
});
$(document.createElement("a")).attr("href","#").text("Test Link 2").appendTo("div.test");
});
-->
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
编辑:是唯一的解决方案,用jQuery插件抽象它?
Six*_*tto 14
您的问题是click()将事件侦听器绑定到当前匹配集中的每个元素.这不是魔术,它不会追溯性地将事件监听器应用于您添加到DOM的新内容.你的选择是:
$(function(){
$("div.test").click(function(e){
if( $(e.target).is("a") ) {
alert("click");
return false;
});
});
});Run Code Online (Sandbox Code Playgroud)$(document.createElement("a"))
.attr("href","#")
.text("Test Link 2")
.click(function(){ alert("click"); })
.appendTo("div.test");Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
6887 次 |
| 最近记录: |