2014-06-16 34 views
1

我浪費了一些時間來找到解決辦法,我不能找到它後是不工作...的.html()調用Ajax

這裏是我的代碼:

$(".usefull").bind("click", function(e){ 
    e.preventDefault(); 
    var fbkId = $(this).find(".glyphicon").data("id"); 
    $(this).parent().html('<a href="#" class="btn btn-grey usefull disabled"><img src="/www/images/mini-loader.gif" alt="" /> Est utile</a>'); 
    var that = this; 
    $.post('{{ route("www-ajax-feedback-add-usefull") }}',{ fbkId: fbkId }, 
      function(data) { 
       if (data == '1') { 
        toastr.success('Merci pour votre contribution !'); 
        $(that).parent().html('<i class="glyphicon glyphicon-thumbs-up disabled"></i> Est utile</a>'); 

       } else { 
        toastr.error(data); 
       } 
      } 
    ); 
    return false; 
}); 

當我點擊一個按鈕,我用加載gif更新按鈕。

當我的ajax調用完成時,我想更新狀態按鈕,但它不工作。

感謝您的幫助

這更多的信息:

<a href="#" class="btn btn-grey agree"><i class="glyphicon glyphicon-thumbs-up" data-id="2161"></i> Je suis d'accord</a> 

如果我把執行console.log($(這)的.html());之後$。員額這裏輸出: <i class="glyphicon glyphicon-thumbs-up" data-id="2161"></i> Je suis d'accord

+0

什麼是 「那個」? $(that).parent()。html(...),它是「this」嗎? – M98

+0

似乎你的HTML在'html()'調用中不正確... –

回答

0

對於那些將獲得綁定到通過Ajax的DOM或在運行時添加的所有元素,你必須使用

http://api.jquery.com/live/ 

或代表

http://api.jquery.com/delegate/ 

這些將綁定在文檔級別。

+0

我嘗試使用$(「.fullfull」)。on(「click」,function(){(live is depreciated and「delegate」and「on」它不起作用 – sHaDeoNeR

+0

然後嘗試使用'.done(function(){'並查看它是否在該塊中,參考:http://api.jquery.com/jquery.post/ –

+0

感謝建議,是的,但是$(this).parent()。html仍然不起作用 – sHaDeoNeR

0

==>this引用一個javascript對象,$(this)用於封裝jQuery。

$(".usefull").bind("click", function(e){ 
    e.preventDefault(); 
    var fbkId = $(this).find(".glyphicon").data("id"); 
    $(this).parent().html('<a href="#" class="btn btn-grey usefull disabled"><img src="/www/images/mini-loader.gif" alt="" /> Est utile</a>'); 
    var that = $(this); 
    // use $(this); insetd of this; 

    $.post('{{ route("www-ajax-feedback-add-usefull") }}',{ fbkId: fbkId }, 
      function(data) { 
       if (data == '1') { 
        toastr.success('Merci pour votre contribution !'); 
        $(that).parent().html('<i class="glyphicon glyphicon-thumbs-up disabled"></i> Est utile</a>'); 

       } else { 
        toastr.error(data); 
       } 
      } 
    ); 
    return false; 
}); 

閱讀更多 jQuery: What's the difference between '$(this)' and 'this'?

+0

我只是像你一樣替換它,它仍然是同樣的問題 – sHaDeoNeR

+0

你確定你的ajax函數已經成功完成請檢查瀏覽器控制檯是否你有任何錯誤 –

+0

是的,它已完成,我看到信息taster toastr,並沒有錯誤 – sHaDeoNeR