javascript - 检查 javascript 函数是否未完成

标签 javascript debugging scriptaculous adblock

自从我安装了 Adblock Plus for firefox(用于阻止广告的附加组件)后,由 scriptaculous 提供支持的每个动画都不再起作用(不仅在我的网站上)。

现在我知道了,我正在寻找一种方法来检查 JavaScript 函数是否未完成(就像我为脚本动画调用的函数)。

<script type="text/javascript">

function scriptaculous(){

  new Effect.Morph("thumb_id", { style: "height:300px;", duration: 0.8 });

}

function enlarge_thumbnail(){

  scriptaculous();

// if( scriptaculous() was not completed ){

   document.getElementById("thumb_id").style.height = "300px";

// }

}

</script>

真正的问题是我不能只调用它们两个,因为第一个错误并阻止第二个加载。有谁知道如何处理吗?

最佳答案

每当任何效果启动等时,它们都会添加到全局效果队列中,因此您可以检查队列是否存在以及队列中有多少效果。

if(Effect.Queues.get('global').effects.length == 0)
{
    //do something else

}

此外,由于 Effects 方法将立即返回,因此您无法确切知道效果何时完成,除非您像这样使用 afterFinish 回调

new Effect.Morph("thumb_id",
                        { 
                         style: "height:300px;", 
                         duration: 0.8, 
                         afterFinish: function(effect){
                           //do other things when the effect is finished
                           //the callback is passed the effect object
                           //and the element it is working on is at effect.element
                         } });

关于javascript - 检查 javascript 函数是否未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943346/

相关文章:

javascript - 如何使用 UMD 定义单个对象构造函数?

javascript - 执行配置文件 app.json/process.yml 时找不到 Pm2 脚本

c# - 如何查看 HttpWebRequest 类发送的原始 HTTP 请求?

java - 用于与 JSP/Java 集成的文件浏览器的 Prototype/Scriptaculous Javascript 插件?

javascript - 在 SlideDown 和 SlideUp 之间建立链接切换(脚本)

javascript - 在 scriptaculous 自动完成器上输入两次 key

javascript - Next.js 内联脚本只加载一次

javascript - 如何将 res 从一个函数传递到另一个函数?

c++ - 为什么使用 clang 的 2 阶段命令行构建不会生成 dSYM 目录?

c# - 在 VS2008 中,有没有办法自动 "Attach to Process"?