我需要一种方法来使用jquery .live()函数来处理通过ajax加载的元素.
例如,通过ajax加载div .load()
<div id="mydiv"></div>
Run Code Online (Sandbox Code Playgroud)
通常我会.live()使用click事件,但我需要知道如何告诉dom这个新的div已加载而没有来自用户的任何明确的操作/事件.
这段代码不起作用,但我想做这样的事情:
mydiv = $("#mydiv");
mydiv.live("mydiv.length > 0", function() {
// do something
});
Run Code Online (Sandbox Code Playgroud)
"mydiv.length"是典型"点击"或其他事件的替代品.
Sea*_*ira 11
另一种方法是使用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);
Run Code Online (Sandbox Code Playgroud)
然后只需设置一个事件监听器并在事件触发时运行它.
$("your_selector").bind("content_loaded", your_results_loaded_function);
Run Code Online (Sandbox Code Playgroud)
没有"DOM已更改"事件,并且创建一个对浏览器造成负担.您最好使用load方法的回调来触发您需要的功能.
$('#foobar').load('myurl.html',function() {
var mydiv = $("#mydiv");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35308 次 |
| 最近记录: |