如果我使用 JQuery 设置 div 标签,如下所示:
$('#maindiv').html(some content...);
那么如果我将事件绑定到“maindiv”现在拥有的对象,如果我稍后将 html 重置为“maindiv”,如果我选择不重新绑定这些事件,这些事件是否仍然存在?我的意思是如果我在重置 html 后再次绑定这些事件,我会做双重工作吗?
希望这是有道理的。非常感谢您的任何见解。
大卫
如果我使用 JQuery 设置 div 标签,如下所示:
$('#maindiv').html(some content...);
那么如果我将事件绑定到“maindiv”现在拥有的对象,如果我稍后将 html 重置为“maindiv”,如果我选择不重新绑定这些事件,这些事件是否仍然存在?我的意思是如果我在重置 html 后再次绑定这些事件,我会做双重工作吗?
希望这是有道理的。非常感谢您的任何见解。
大卫
更新元素内容将删除内部元素的所有事件。
但是,您可以使用事件委托只绑定一次事件(所谓的委托事件方法):
$("#maindiv").on("click", "#element", function() {
// do something
});
如果您使用 html 函数生成一些 html 并且仅使用 bind,那么在 bind 之后添加的任何未来元素都不会触发任何事件。
如果您打算在初始内容应用了事件后添加元素,则最简单的排序方法是使用live而不是 bind。