2

jQuery のオブジェクトに問題があり、コード内の要素を$(this)見逃してしまいます:this

 $('.star').click(function (){
    var id   = $(this).parent().attr('id').split('rating')[1];
    var vote = $(this).index() + 1;
    var ThisStar = $(this);

    alert(ThisStar.parent().html())

    $.ajax({
        type: 'POST',
        url:  EXECUTION_URL + 'ajax/rate.php',
        data: {'article' :id  ,'rate': vote},
        success:function(data,tt,ff){
            alert(ThisStar.parent().html())
        }
  });

最初のアラート発生: クリックされたノードの親の真の内容 2 番目のアラート発生: null !!!! なぜそれがajaxに変更されたのですか?または別の理由から?この問題の良い解決策を教えてください

わかりました実際に、オブジェクトに格納されたノードを削除するajax関数の後に2行あるコードをチェックしましthisた.ajax関数は非同期関数であるため、成功関数内のコードの前に2行が実行されました>>すべてに感謝します

4

1 に答える 1

0

コードは正常に動作するはずです。証明を確認してください。唯一の違いは次のとおりです。

success:function(data,tt,ff){
    alert(ThisStar.parent().html())
}

対。

success:function(data,tt,ff){
    alert(ThisStar.parent().html())
}});
于 2012-09-07T12:01:15.790 に答える