0

リンクがクリックされ、ajax 呼び出しが正常に行われたときに、親 div を非表示にしたい。hide() を ajax の成功部分に配置すると、機能しません。

$('.mylink').click(function(){

     $.ajax({
          type: "POST",
          data: dataString,
          url: "includes/edit-packages.php",
          success:function(){

               $(this).parent().slideUp('slow');

          }


     });

return false;

});

これは成功の外で機能しますが:

$('.mylink').click(function(){

         $(this).parent().slideUp('slow');

});

$(this).parent()ajax の成功部分で参照するにはどうすればよいですか?

4

1 に答える 1

2

こちらをご覧ください: http://plnkr.co/edit/fAjLM8hS9BmdQ7tJ0UZA?p=preview

基本的thisに、同じ HTML 要素を参照するのではなく、実際には success 関数内の window オブジェクトを参照しています (単純なconsole.log変数thisが非常に役立ちます!)。

必要な機能を得るには、ajax 呼び出しのすぐ外側で新しい変数を定義します。

$('.myLink').click(function() {
    var myLink = $(this);
    // wait 2 seconds to simulate an Ajax call somewhat
    setTimeout(function() {
      myLink.parent().slideUp('slow');
    }, 2000);
});
于 2013-03-07T02:56:39.567 に答える