使用jQuery,有没有办法document.ready在页面加载后的某个时刻重新触发触发器?
更新:jQuery一旦运行就会脱掉它们.在我的实验中,看起来jQuery会在触发().ready初始ready事件后遇到回调时立即运行回调.
Mat*_*ley 26
如果您只需确保运行新的初始化函数,则无需执行任何操作.当您$().ready在文档完成加载后添加新的事件处理程序时,它将立即运行.
显然,$().trigger("ready")直接调用不起作用,因为jQuery在运行它们之后重置ready事件处理程序.您需要跟踪需要呼叫的功能,并直接调用它们,如下所示.
当然,直接调用函数可能会更好,所以你不要重新运行你不想要的东西(某些插件可能有自己的$().ready()函数,他们不期望跑两次).
$().ready(initializationFunction);
// later:
initializationFunction(jQuery);
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
$(document).on('ready readyAgain', function() {
// do stuff
});
// At some other point in time, just trigger readyAgain
$(document).trigger('readyAgain');
Run Code Online (Sandbox Code Playgroud)
$(document).on('ready')已根据文档在jQuery 1.8中弃用.另一种方法如下:
function myReadyFunction(){}
$(myReadyFunction);
// at some other point, just call your function whenever needed:
myReadyFunction($);
Run Code Online (Sandbox Code Playgroud)