绑定莫名其妙,,之前的setTimeout运行,我的网页加载有这个电话 window.setTimeout(function() { self.MakeWaterFall(self) }, 500);
window.setTimeout(function() { self.MakeWaterFall(self) }, 500);
这.js文件托管其他服务器上,加载网页上类似于像很多JS从CDN的库是加载
的一个JavaScript文件,,而该文件已“硬编码”的setTimeout拨打500毫秒后绑定莫名其妙,,之前的setTimeout运行,我的网页加载有这个电话</p> <pre><code>window.setTimeout(function() { self.MakeWaterFall(self) }, 500); </code></pre> <p>这.js文件托管其他服务器上,加载网页上类似于像很多JS从CDN的库是加载
现在,我想的是'MakeWaterFall'
功能,在页面上稍晚运行
我想它的自定义后触发器触发运行,后阿贾克斯数据来自电线和呈现帖子在页面上。
这是绑定触发器,我需要“搬家” MakeWaterFall FN键..
$(window).bind('grid:items:added' , function(){
// .. some custom events on elements +
MakeWaterFall(window);
}) ;
在本质上,这问题就像“我可以挂钩window.setTimeout运行前阻止一个规范的呼叫和把它移到其他地方,后者在代码中?
也并不是说我有其他一堆,在通过window.setTimeout代码代码等地运行的代码,,我知道,吸:(
感谢
使用一个回调函数是这样的:
function myFunction(callback){
myFunction1();
if(typeof(callback) === "function()"){
myFunction2();
}}"
好,我找到了解决办法,这是非常简单的其实..它incudes此步骤:
1)我确信,我装我custom.js
文件早些时候在页面上,在托管的CDN'有问题'的js文件出现在页面上(其中有setTimeout
)
2)我保留了原生函数,并且制作了我的自定义函数并执行了此操作:
// save original setTimeout function to savedST
window.savedST = window.setTimeout ;
// define custom window.setTimeout function and hook to it
window.setTimeout = function(a, b){
// I'm testing if this calls waterfall fn.. then bounce that f() to other binded event
if (a.toString().indexOf('MakeWaterFall') > -1){
$(window).bind('grid:items:added', function(){
a();
});
} else {
// run normal or original setTimeout as usual
savedST(a, b);
}
} ;
我敢肯定,这是东西,这将帮助别人,这将需要重写“的setTimeout”和/或“的setInterval”,本地窗口功能
欢呼声,K
为什么不你在你想要执行的函数的回调函数中调用MakeWaterFall() – marvel308
这两个函数都是异步的吗?如果它们是同步的,它们将一个接一个地运行。如果没有,请使用回调。 – Li357
那么这个其他功能是什么样的?不能只是在它的结尾调用self.MakeWaterfall,或者将它包装到另一个调用它的函数中?还是有一些计时器或异步的事情?在后一种情况下,你确实需要提供更多的上下文。 – GolezTrol