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,在运行所有其他代码之前,你永远不会看到使用给定代码的图像更改