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 元素,它实际上指的是成功函数中的窗口对象(一个简单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 回答