jquery .live on load function

时间:2014-06-16 19:58:23

标签: jquery

我需要一种方法来使用jquery .live()函数来处理通过ajax加载的元素。

例如。 div通过ajax .load()

加载

通常我们使用.live()和一个事件来处理ajax加载的数据,但每次使用load事件加载ajax数据时我都需要处理这个div。

以下是我的代码不起作用,但我想做这样的事情:

    $('#hidden').live('load',function(){
        hiddenInfo = $('#hidden').text();
    }); 

2 个答案:

答案 0 :(得分:3)

更通用的方法是使用trigger在Ajax成功事件中广播自定义事件,以便可以使用on(优先于live },请);

success: function(data) {
    $("#hidden").html(data);
    $("#hidden").trigger("panelloaded");   // Just pick a name not already used
}

然后你可以

$('#hidden').on('panelloaded',function(){
    hiddenInfo = $('#hidden').text();
}); 

或委托版本,如果元素本身可以更改:

$(document).on('panelloaded', '#hidden', function(){
    hiddenInfo = $('#hidden').text();
}); 

从理论上讲,你可以使用" load"作为事件名称(并且根本不更改您的代码),但我不确定您可能有哪些其他冲突,因为load是一个常见的术语。

答案 1 :(得分:0)

加载后只需在AJAX回调中执行某些操作,例如:

success: function(data) {
    $("#hidden").html(data);
    hiddenInfo = data.text; //or whatever
}

或者挂钩全局AJAX完成事件,以便在每次AJAX事件结束时执行某些操作。