Dan*_*Dan 2 jquery load jquery-click-event
我正在尝试创建一个页面,其中示例div是可点击的,因为它将在下面.
但是我试图这样做,如果用户点击徽标,它将使用加载重新加载原始内容.
发生此负载后,是否可以"点击"加载<div id="example">?我正在尝试此操作,并且在单击<div id="example">file.php中的已加载时无法发出警报
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Example</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#example").click(function(){
alert("You clicked me!");
});
$("#logo").click(function(){
$("#main").load("file.php");
});
});
</script>
</head>
<body>
<img id="logo" src="404.gif" />
<div id="main">
<div id="example">This is content.</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
file.php包含
<div id="example">This is loaded content that can't be clicked?</div>
Run Code Online (Sandbox Code Playgroud)
问题是.click()只在那个时刻将事件绑定到DOM中存在的元素.这意味着当您向页面添加新元素时,它不会绑定一个事件处理程序.
如果您使用的是jQuery 1.7+,而不是.click()在代码中使用.on().
$("#main").on('click', '#example', function(){
alert("You clicked me!");
});
Run Code Online (Sandbox Code Playgroud)
...或者使用旧版本的jQuery .live()代替:
$("#example").live('click', function(){
alert("You clicked me!");
});
Run Code Online (Sandbox Code Playgroud)
这将确保添加到DOM的新元素也将绑定到它们的事件处理程序.
| 归档时间: |
|
| 查看次数: |
3204 次 |
| 最近记录: |