【发布时间】:2016-03-28 14:12:52
【问题描述】:
我在 ajax 请求 (.button('loading')) 的按钮上使用加载动画。请求完成后,我拨打.button('reset')。
我想在重置后更改按钮的文本 (.html('hello')),但它又变回了第一个状态。如果我调试,我可以看到它更改为新值,然后立即更改回来。
$("#myButtons .btn").click(function() {
$(this).button('loading').delay(1000).queue(function() {
$(this).button('reset');
$(this).html('Hello');
$(this).dequeue();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div id="myButtons">
<button type="button" class="btn btn-danger">Danger</button>
</div>
编辑;这是一个 sn-p 示例,真正的重置是在 Ajax 成功调用中
在我的代码中是这样的:
<button type="button" id="230" class="btn causes btn-danger" data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i>">Non</button>
$('.causes').click(function () {
$(this).button('loading');
ChangeStatus(event.target.id)
});
function ChangeStatus(id) {
var idCause = id;
var trouve = true;
var classe = "btn-success";
var texte = "Oui";
if ($("#" + idCause).hasClass("btn-success")) {
trouve = false;
classe = "btn-danger";
texte = "Non";
}
$.ajax({
url: '/BREQ/Cause/ChangeCauseStatus',
data: { 'idCause': idCause, 'trouve': trouve },
type: "post",
cache: false,
success: function (savingStatus) {
if (savingStatus == 1) {
$("#" + idCause).button('reset');
$("#" + idCause).removeClass("btn-danger");
$("#" + idCause).removeClass("btn-success");
$("#" + idCause).addClass(classe);
$("#" + idCause).html(texte);
} else {
alert("Problème avec la sauvegarde");
}
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
}
【问题讨论】:
标签: jquery html twitter-bootstrap