我需要一种方法来使用jquery .live()
函数来处理通过ajax加载的元素。
例如,通过ajax .load()
加载div。
<div id="mydiv"></div>
通常我使用.live()
事件进行单击,但我需要知道如何告诉dom这个新的div已经加载,而没有任何来自用户的显式操作/事件。
这段代码不能工作,但我想这样做:
mydiv = $("#mydiv");
mydiv.live("mydiv.length > 0", function() {
// do something
});
"mydiv.length“是典型的”点击“或其他事件的替代品。
发布于 2010-03-31 04:36:11
没有"DOM changed“事件,创建一个事件会对浏览器造成很大的负担。最好使用load方法的回调来触发所需的函数。
$('#foobar').load('myurl.html',function() {
var mydiv = $("#mydiv");
});
发布于 2010-03-31 04:41:08
另一种方法是使用trigger()
触发您自己的自定义事件(让我们称之为content_loaded
)。load()
接受一个在完成时调用的回调函数:
function callback_function(responseText, textStatus, XMLHttpRequest) {
//if we have valid data ...
trigger("content_loaded");
}
$("your_selector").load("your_url", callback_function);
然后只需设置一个事件侦听器,并在事件被触发时运行它。
$("your_selector").bind("content_loaded", your_results_loaded_function);
发布于 2010-03-31 04:35:35
https://stackoverflow.com/questions/2548479
复制相似问题