accept "> accept "> accept " />

jquery onclick hide/show div

私は友人のリクエストを示すphpファイルを持っています。ユーザーが受け入れまたは拒否するリンクをクリックしたときにdivをクラス "request_buttons"で非表示にしたいのですが、他の3つのdivも隠しているという問題があり、リンクが押されたdivだけを隠したいと思っています。

私のHTMLコードは:

<div class="request_buttons">
   accept
   refuse
</div>

JavaScriptは次のとおりです。

function accept(id)
{
    $.ajax({
       type: "POST",
       url: "request.php?action=accept",
       data: "id="+id,
       success: function(){
            $('.request_buttons').hide();
            $('.result').html('Request accepted');
       }
     });
}

LE:Royi Namirによって提供されたコードを使用して、私は(間違って)解決策に出た。 私はこれをhtmlに変更しました:

<div id="2">    
     <div class="request_buttons">
    accept
    refuse
     </div>
  <div class="result"></div>            
</div>

このjqueryは:

function accept(id)
{
t = $('#'+id);
    $.ajax({
       type: "POST",
       url: "request.php?action=accept",
       data: "id="+id,
       success: function(){         
       $(t,'.result').first().html('Accepted');
       }
     });
}

そしてそれが動作し、div "request_buttons"が消えて、メッセージが表示されます。私はどのように動作するのかわかりませんが、動作します!

1

3 答え

div class="request_buttons">
   accept
   refuse
</div>

function accept(obj)
{
t = $(obj);

    $.ajax({
       type: "POST",
       url: "request.php?action=accept",
       data: "id="+id,
       success: function(){
            t.parent(".request_buttons").hide();
            $('.result').html('Request accepted');
       }
     });
}
3
追加された
@Yorgoは感謝しました。
追加された 著者 Royi Namir,
@PopescuMarianはあなたが望むものをいくつかのプリントスクリーンで明確にしてください
追加された 著者 Royi Namir,
あなたはリンクではなくリンクの親を隠すべきです:t.parent()。hide();そのコードによって
追加された 著者 Yorgo,
id のパラメータを忘れないでください:)
追加された 著者 Stefan,
確かに、あなたは正しいです。 mugurが言ったように、私はdivにユニークなIDを与え、コードを使用しなければなりません。今働いています、どうもありがとうございます。
追加された 著者 Popescu Marian,
実際には正しく動作していませんが、正しいdivが隠されていますが、正しいdivにだけでなく、他のdivにも「Request accepted」というメッセージが表示されます。
追加された 著者 Popescu Marian,
のすべてのインスタンスに「Request accepted」というメッセージが表示されます。 idを持つdivは正しく隠されている可能性があります。おそらくidがあり、はこのようなものではありません。
追加された 著者 Popescu Marian,
私は誤って別のsollutinを見つけました。私は元の投稿を編集しました。
追加された 著者 Popescu Marian,

あなたのコードでは、

$.ajax({
   type: "POST",
   url: "request.php?action=accept",
   data: "id="+id,
   success: function(){
        $('.request_buttons').hide();
        $('.result').html('Request accepted');
   }
 });

〜と

$.ajax({
   type: "POST",
   url: "request.php?action=accept",
   context: $('#'+id),
   success: function(){
        $(this).parents('.request_buttons').hide();
        $('.result').html('Request accepted');
   }
 });
2
追加された
します。 $ .ajax(..)のコンテキストパラメータを参照してください。
追加された 著者 techfoobar,
この場合、 this はクリックされた要素を参照しません。
追加された 著者 Stefan,
ああ、申し訳ありません!コンテキストプロパティに気付かなかった。私はあなたの投稿が私はそれをコメントしたときに異なって見えたと思う。 +1素晴らしいソリューション!
追加された 著者 Stefan,

You can use the jQuery parent function for this. Try $(this).parent().hide()

0
追加された