由于我为firefox安装了Adblock Plus(用于阻止广告的附加组件),所以每个由scriptaculous驱动的动画都不再起作用(不仅仅在我的网站上)。
现在我知道了,我正在寻找一种方法来检查javascript函数是否未完成(就像我调用我的scriptaculous动画一样)。
<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>
真正的问题是我不仅可以调用它们,因为第一个错误并阻止第二个错误加载。谁知道如何处理?
答案 0 :(得分:0)
每当任何效果开始等,它们都会被添加到全局效果队列中,因此您可以检查队列是否存在以及队列中有多少效果。
if(Effect.Queues.get('global').effects.length == 0)
{
//do something else
}
另外因为效果方法会立即返回,所以你不会确切知道效果什么时候结束,除非你使用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
} });