Javascript 使用jquery.live()处理当前和将来的DOM

Javascript 使用jquery.live()处理当前和将来的DOM,javascript,jquery,Javascript,Jquery,我的jQuery代码是 $('#tarea').click(function() { // Do stuffs }); 这对于随此脚本加载的按钮#tarea来说效果很好。如果按钮#tarea在将来使用ajax加载,那么上述代码将无法工作 现在我把代码改为 $('#tarea').live('click', function() { // Do stuffs }); 这一次,与脚本一起加载的按钮“tarea”不起作用。但是,如果使用ajax生成脚本,则该脚本可以与按钮一起工

我的jQuery代码是

$('#tarea').click(function() {
     // Do stuffs
});
这对于随此脚本加载的按钮#tarea来说效果很好。如果按钮#tarea在将来使用ajax加载,那么上述代码将无法工作

现在我把代码改为

$('#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文件中。

.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文件中。

你把:

$('#tarea').click(function() {
     // Do stuffs
});
在函数中

当通过ajax加载时,在.load()的第二个参数中添加一个回调函数(上面的一个)

例如:

.load(target_url, function() { $('#tarea').click(function() { blablabla; }})
你说:

$('#tarea').click(function() {
     // Do stuffs
});
在函数中

当通过ajax加载时,在.load()的第二个参数中添加一个回调函数(上面的一个)

例如:

.load(target_url, function() { $('#tarea').click(function() { blablabla; }})