我有我的jQuery代码为
$('#tarea').click(function() {
// Do stuffs
});
对于与此脚本一起加载的#tarea按钮,此方法效果很好。如果将来已使用ajax加载了#tarea按钮,则上述代码将不起作用。
现在我将代码更改为
$('#tarea').live('click', function() {
// Do stuffs
});
这次,如果#tarea按钮与脚本一起加载,则无法使用。但是,如果使用ajax生成的脚本可以与按钮一起使用。
如何编写脚本,以便在两种情况下都能正常工作??
最佳答案
.live()
在这两种情况下都可以工作,而无需做任何其他事情。我会检查您的代码中是否存在其他可能阻止这种情况发生的问题。
重要提示:检查的一件事是确保绑定了您的.live()
事件,并且该事件不依赖于其他事件。发布您的JavaScript文件的重要部分可能会有所帮助。我个人希望在全局范围内声明.live()
事件。
我做这样的事情:
// this is what I mean by global because it is outside the document.ready
$("#test").live("click", function() {
// do stuff
});
$(function() {
// do stuff when document is ready
});
如果您想证明我上面所说的,只需要将按钮和
.live()
JavaScript代码放入新的HTML文件中。