我是javascript的新手,不知道它是否使用堆栈来保持函数调用的跟踪。
这是我遇到的代码
function bounce(nIdx,bMulti)
{
idDivread.style.display='';
initBounceMgr();
cBounceMgr.bounce(document.all.KnlTbl.rows[nIdx].cells[0].procName,bMulti);
readKill();
}
function readKill()
{
idDivread.style.display='none';
}
此跳出函数由onclick
事件调用,我想显示一个div,因为它有等待符号的图像。这是有效的,但因为我想在函数调用完成后删除此等待符号,我应用了此readKill
函数。但那时候那个形象根本就不存在了
似乎在这两个函数之前调用了这个函数
如何确保在这两个函数之后执行readkill
函数。
答案 0 :(得分:4)
按照您期望的顺序调用它们。问题可能来自以下事实:如果bounce
是动画或类似动画,它可能会立即返回并以异步方式执行动画。所以它实际上正在做的是显示div,开始反弹,然后隐藏div并在隐藏的div中进行反弹动画。
通常像这样运行的方法会接受回调参数。这是一种在完成他们想要的操作后调用的方法。在这种情况下,您可以将readKill
作为回调函数传递而不是直接调用它。
我不确定cBounceMgr对象是什么,所以无法为您提供准确的语法。