我有一个简单的自定义选项卡模块,该模块使用AJAX请求加载选项卡(通过$(elem).load()
)。在每个使用AJAX加载的页面上,我都有一些JavaScript。第一次加载页面时(通过URL的直接输入,而不是AJAX),javascript会完全启动。当我通过AJAX选项卡离开页面时,页面中的JavaScript不再被加载。jQuery - 当使用AJAX加载内容时document.ready不会触发
有什么办法可以强迫他们执行?
我有一个简单的自定义选项卡模块,该模块使用AJAX请求加载选项卡(通过$(elem).load()
)。在每个使用AJAX加载的页面上,我都有一些JavaScript。第一次加载页面时(通过URL的直接输入,而不是AJAX),javascript会完全启动。当我通过AJAX选项卡离开页面时,页面中的JavaScript不再被加载。jQuery - 当使用AJAX加载内容时document.ready不会触发
有什么办法可以强迫他们执行?
domeready事件只在初始dom准备就绪时触发(如名称和jquery-api建议)。
如果你想使用jquerys load()并且在加载完成后触发一个函数,你必须使用回调函数(according to the api)。
,如果你想要做的domready中和负载事件同样的事情,最好的方法是定义一个新的功能:
function dostuff(){
// do some stuff here
}
和火在这两种情况下,这种功能:
$(function(){ // domready | shortcut for "$(document).ready()"
dostuff();
})
$('#something').load('script.php', function() { // callback on load()
dostuff();
});
将您的$(document).ready()
代码放入新方法中。我们称它为methodA
。现在从$(document).ready()
称为methodA
。其次,在ajax请求成功后调用相同的方法。这应该可以解决你的问题。