我有我的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文件中。

09-10 05:14
查看更多