2016-03-28 14 views
0

私のボタンにajaxリクエスト(.button('loading'))の読み込みアニメーションを使用しています。リクエストが完了すると、私は.button('reset')に電話します。アニメーションの読み込み後にJqueryボタンのテキストを変更できません。

リセット(.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>

編集。これは、スニペット例であり、実際のリセットはこれが、それは私のコードであるかである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) { 

     } 
    }); 
} 

答えて

0

、参照 a jsfiddle exampleあなたは$(要素)を使用する必要があり

の.text()jQueryのプロパティ

$('.resetButton').click(function(){ 
var butn = $(this); 
butn.text('loading'); 

    // lets assume your ajax request will take 2 seconds to resolve 
    myVar = setTimeout(function(){ 
    butn.text('Reset'); // after you get the response change the button text back to "Reset" 
    }, 2000) 
}) 
+0

あなただけのテキストを変更する場合は、作業を行いますが、私はスピナーを使用それで、私は '.button( 'loading')'を使用しています。 – Insecurefarm

+0

button.html()はうまくいくはずです –

関連する問題