首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有关过早执行jQuery函数的帮助

有关过早执行jQuery函数的帮助
EN

Stack Overflow用户
提问于 2010-11-03 14:56:19
回答 2查看 153关注 0票数 0

我有一个点击功能:

代码语言:javascript
复制
jQuery("#element").click(function(e){

        var op = jQuery("#box").GetOp();
  op.flag1 = false;
        op.flag2 = true;
  executeFunction();
  jQuery("#box").reload();

 });

我希望函数executeFunction();和jQuery("#box").reload();仅在前两行执行后按串行顺序执行。

编辑:函数需要同步执行。

其他线程建议使用回调,但我不确定如何在我的情况下使用它。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-03 15:24:15

Javascript天生就是同步的,所以,如果你的代码不是按串行顺序执行的,也许executeFunction()会调用一些异步行为,比如AJAX请求或者setTimeout/setInterval

在这种情况下,一种可行的解决方案是将一个函数传递给executeFunction(),并在异步行为完成时调用它:

代码语言:javascript
复制
jQuery('#element').click(function(e){
    var op = jQuery('#box').GetOp();
    op.flag1 = false;
    op.flag2 = true;
    executeFunction(function(){
        jQuery('#box').reload();
    });
});

以及改变executeFunction(fn)以在异步行为成功时调用该函数。

票数 2
EN

Stack Overflow用户

发布于 2010-11-03 15:21:06

通常,JavaScript是单线程编程。但是您可以通过使用setTimeOut自动调用定义的函数来模拟线程。对于您的源代码,如果您不在任何方法中使用任何setTimeOut语句,那么它应该同步工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4084801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档