我有一个关于jQuery加载最佳实践的问题。想象一下以下情况:
$("#div").on('click', function() {
$('#result').load('test.html');
});
代码工作正常,load方法执行,但现在jQuery插件无法访问加载的内容。我这样解决了:
$("#div").on('click', function() {
$('#result').load('test.html', function(){
$('.element').plugin();
});
});
我的问题很简单,有没有更好的方法来解决这种情况?
答案 0 :(得分:2)
你正在以正确的方式做到这一点。调用插件方法的代码只有在加载完成到div后才会执行。所以你很高兴。
可能你可以将所有代码包装在document.ready中,以确保只有在dom完成加载后才能执行。
$(function(){
$("#div").on('click', function() {
$('#result').load('test.html', function(){
$('.element').plugin();
});
});
});
答案 1 :(得分:2)
理想情况下,您需要使用parent
定位元素的id="div"
...让我们为此示例说一个容器<div id="wrap">
。然后使用.on()
容器作为选择器使用parent
:
$("#wrap").on("click", "#div", function() {
$('#result').load('test.html');
});
然后您的其他插件可以访问加载的内容。
自jQuery v1.7.x起,这种使用.on()
的格式实际上取代了.live()
。
最终,您也可以
$("body").on("click", "#div", function() {
$('#result').load('test.html');
});