0

我是 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在这两个函数之后执行该函数。

4

1 回答 1

4

它们按您期望的顺序被调用。问题可能来自这样一个事实,即如果bounce是动画或类似的,它可能会立即返回并异步执行动画。所以它实际上做的是显示 div,开始反弹,然后隐藏 div 并在隐藏的 div 中执行反弹动画。

通常像这样运行的方法会接受一个回调参数。这是在他们完成他们想做的事情后调用的方法。在这种情况下,您将readKill作为回调函数传入,而不是直接调用它。

我不确定 cBounceMgr 对象是什么,所以不可能给你确切的语法来使用。

于 2013-06-20T08:32:41.547 回答