我需要一种方法来使用jquery .live()函数来处理通过ajax加载的元素。
例如。 div通过ajax .load()
加载通常我们使用.live()和一个事件来处理ajax加载的数据,但每次使用load事件加载ajax数据时我都需要处理这个div。
以下是我的代码不起作用,但我想做这样的事情:
$('#hidden').live('load',function(){
hiddenInfo = $('#hidden').text();
});
答案 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事件结束时执行某些操作。