我有一些代码在FF中工作正常但在IE中却没有。我读过其他帖子说Jquery live方法不支持更改事件,但我使用的是click事件。这是我的代码,它位于$(document).ready(function():
中$("a").live("click", function(e) {
alert("link clicked");
//do stuff
});
如果FF警告被触发但不在IE中。当我使用$(“a”)。点击它工作正常,问题是我需要将函数应用于首次加载页面时不存在的链接(它们将在稍后通过ajax调用创建阶段)。
我在这里有任何选择吗?我们正在使用jquery-1.4.1.min.js。
提前致谢
答案 0 :(得分:2)
如果这些链接在特定内容中,您可以使用:
$('#link_container_id').delegate('a', 'click', function(e){
alert('link clicked');
});
.delegate()
将观察是否有任何事件(点击您的情况)冒泡,如果是,它会检查目标并将其与您的情况中的“a”进行比较。应该工作,但未经测试。
答案 1 :(得分:1)
live
事件时,元素应存在于DOM中。如果稍后重新创建它们(例如在ajax回调中),则不需要再次重新附加事件处理程序。如果页面加载时不存在元素,则可以在加载时附加实时事件,但如果执行此操作,则可能不再需要live
事件,因为您可以直接附加click
事件