2
<div id="msg_container">
  <span> Is this helpful ? </span>
  <span class="feedback"> 
     <a title="like"> Yes </a> 
     <a title="dislike"> No </a> 
  </span>
</div>

// jQuery Script
$('.feedback a').live('click', function() {
   var reference = $(this).parent().parent();
   $.post("URL", $("FORM").serialize(),
        function(data){
    // posted successfully and following will be executed
    reference.empty();
            reference.add('<span> You have given feedback </span>');

   }, "json");       
});

プロセスは次のようになります。

  1. ユーザーに尋ねられます'これは役に立ちましたか?はい・いいえ'
  2. 「はい」または「いいえ」のいずれかをクリックすると、.postメソッドが実行されます
  3. サーバーに正常に投稿した後、
  4. DOM要素id="msg_container"で、コンテンツ全体を「フィードバックを送信しました」という文を含む通常のスパンまたは段落に変更して、各ユーザーが1つのフィードバックのみを送信できるようにします。

問題:

  1. div "msg_container"が空になると、.add()は機能しませんでした。
  2. 「msg_container」を空にしなくても、.add()は機能しませんでした。
  3. ドキュメントを読みましたが、.add()は、上記のように参照オブジェクトで機能しないようです。
  4. var reference = $(this).parent();のように変数への参照を割り当てる必要があります。そうしないと、$。postを実行した後、$(this)は元の'this'参照を失います。

これを解決する方法はありますか?要件が満たされている限り、代替ソリューションを受け入れることができます。

4

1 に答える 1

2

あなたが使うことができますappend()

reference.append('<span> You have given feedback </span>');
于 2011-12-16T10:00:33.017 に答える