Javascript 当按下按钮时,如何使jQuery函数按顺序运行?

Javascript 当按下按钮时,如何使jQuery函数按顺序运行?,javascript,jquery,Javascript,Jquery,我有一个.click()函数,在单击按钮时执行某些操作。我希望它显示一个加载图像,运行一些“东西”,然后删除加载图像时,“东西”完成 Javascript代码示例: $("#button").click( function(){ shoeLoadingImage(); /************************************************************************** * * other actions to be

我有一个
.click()
函数,在单击按钮时执行某些操作。我希望它显示一个加载图像,运行一些“东西”,然后删除加载图像时,“东西”完成

Javascript代码示例:

$("#button").click(
function(){
    shoeLoadingImage();
    /**************************************************************************
    *
    * other actions to be performed after showLoadingImage() is finished
    *
    **************************************************************************/
    //Whats below should only to be triggered after above actions above are finished
    hideLoadingImage();
}
 );
通过在这里使用一些建议,我想出了一个解决方案。这是可行的,但我相信有更好的方法可以做到这一点,因为我的loading.gif在加载时是冻结的。仅供参考:
success:function(){}
下列出的其他操作包含一些需要一些时间才能完成的操作,这正是加载映像的全部目的

$("#highlight").click(
function(){
    $.ajax({
        beforeSend: function(){ showLoadingImage(); },
        success: function(){
           /**************************************************************************
    *
    * other actions to be performed after showLoadingImage() is finished
    *
    **************************************************************************/

        },
        complete: function (){ hideLoadingImage(); }
    });
});

除非您在showLoading函数中进行异步调用,否则这应该可以正常工作。如果没有,则需要在showLoadingImage中执行回调,该回调将调用hideLoadingImage()。

如果没有涉及ajax调用,则代码看起来不错。否则,如果showLoadingImage是一个ajax调用,您应该这样做

$("#button").click(
function(){
    showLoadingImage();

);

var showLoadingImage = function(){
    $.ajax({
         success: function(){
         /**************************************************************************
         *
         * other actions to be performed after showLoadingImage() is finished
         *
         **************************************************************************/
         hideLoadingImage(); //only to be triggered after above actions are finished
    })
}

你所拥有的应该很好用。。如果show/hide之间的代码执行得很快,效果就不会很好。这是一个ajax请求吗?没有ajax请求。我添加了显示和隐藏功能以使其更清晰。谢谢你的建议。没有ajax调用。我添加了显示和隐藏函数以使其更清晰。@amlane86我不明白其中有什么不起作用,您能提供一个JSFIDLE.net上的示例吗?我使用了您的建议,在发送前添加了一个
完成
,然后将其添加到
$.ajax()。我把它贴在上面给你看。谢谢你的建议。不正确,在dif浏览器中测试,即chrome和safari,在运行所有其他代码之前,你永远不会看到使用给定代码的图像更改