我有一个.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(); }
});
});
答案 0 :(得分:1)
除非你在showLoading函数中进行异步调用,否则这应该可以正常工作。如果没有,那么你需要在你的showLoadingImage中做一个回调,它将调用hideLoadingImage()。
答案 1 :(得分:-1)
如果没有涉及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
})
}