我正在使用 Twitter Bootstrap 的按钮加载状态(http://twitter.github.com/bootstrap/javascript.html#buttons)。
HTML:
<input type="submit" class="btn" value="Register" id="accountRegister" data-loading-text="Loading..."/>
JS:
(function ($, undefined) {
$("#accountRegister").click(function () {
$(this).button('loading');
$.ajax({
type:"POST",
url:"/?/register/",
data:$("#loginForm").serialize(),
error:function (xhr, ajaxOptions, thrownError) {
$("#accountRegister").button('reset');
},
success:function (data) {
$("#accountRegister").button('reset');
}
});
return false;
})
})(jQuery);
但是如果我有很多按钮,我需要编写很多函数(?)。当然我可以做这样的事情:
$(".ajax-button").bind("click", function() {
$(this).button("loading");})
我可以使用 jQuery Ajax 事件ajaxComplete
$(".ajax-button").bind("ajaxComplete", function() {
$(this).button("reset");})
但是这样,当任何Ajax 请求完成时,所有按钮都将设置为正常状态。
如果用户点击button1然后点击button2(两个按钮都在发送Ajax请求),当第一个Ajax请求完成时,它们将被设置为正常状态。如何确定我需要将哪个按钮设置为正常状态?
先感谢您。
更新
我只需要确定哪个按钮触发了某些操作(Ajax 请求),将其状态设置为正在加载,以及 Ajax 请求何时完成,将其状态设置为正常。