jQuery.实时加载事件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (133)

我需要一种使用jQuery的方法.live()函数对通过Ajax加载的元素进行操作。

例如,div通过ajax加载。.load()

<div id="mydiv"></div>

通常我是这么做的.live()使用Click事件,但我需要知道如何告诉dom,这个新div已经加载,而没有用户的任何显式操作/事件。

这段代码不起作用,但我想这样做:

mydiv = $("#mydiv");

mydiv.live("mydiv.length > 0", function() {
       // do something
});

“mydiv.long”是典型的“单击”或其他事件的替代物。

提问于
用户回答回答于

没有“DOM更改”事件,创建事件对浏览器造成负担。最好使用LOAD方法的回调来触发所需的函数。

$('#foobar').load('myurl.html',function() {
    var mydiv = $("#mydiv");
});
用户回答回答于

另一种方法是使用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);

扫码关注云+社区

领取腾讯云代金券