假设我使用 jQuery 将新内容加载到特定的 DIV 元素中。如果我现在想从 DIV 元素内部捕获事件,我假设 DOM 必须以某种方式更新?处理这个问题的最佳方法是什么?
编辑:这是我的意思的一个例子:
<html>
<head>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script>
$(document).ready(function(){
$(".edit").click(function(){
$(this).parent().load("edit");
});
$(".view").click(function(){
$(this).parent().load("view");
});
});
</script>
</head>
<body>
<div class='someid'>
<input type='submit' class='edit' value='Edit'>
</div>
</body>
</html>
同一级别的文件edit
包含
<input type='submit' class='view' value='View'>
文件“ View ”包含
<input type='submit' class='edit' value='Edit'>
如果您尝试一下,您会发现当您第一次按“编辑”时,按钮会更改为“查看”,但随后它就不再改变了。这是为什么?
最佳答案
自 jQuery 1.7.x 起,.live() 方法已被弃用。使用 .on() 附加事件处理程序。如果您使用的是旧版本,则应优先使用 .delegate() 而不是 .live()。
正如帮助中提到的,格式没有太大变化,如本示例所示:
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+
因此,从 1.7.x 开始,delegate 和 live 都已被 on 取代。
关于jquery - 在 jQuery 中插入后更新 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1550761/