2012-07-17 60 views
0
<script type="text/javascript"> 

     var url = document.URL; 
     var strg = url.toString(); 
function StartAjax(ResultsId){ 
    $.ajax({ 
     type: "GET", 
     url: "mark.php", 
     cache: false, 
    data: (strg), 
     success: function(html){ 
     $("#"+ResultsId).append(html); 
     **$("#").hide();** 
     } 

    }); 

} 
</script> 

<br><a href="#" name="link" onclick="StartAjax('ResultsId');">Proceed</a> 
<div id="ResultsId"></div> 

阿贾克斯做它应该做的事情,但是如何在被点击后隐藏链接?阿贾克斯 - 被点击后隐藏链接

回答

0

你应该可以做一个$(this).hide();或者你可以给锚标记一个类,所以

<br><a href="#" name="link" class="thisBtn" onclick="StartAjax('ResultsId');">Proceed</a> 

然后

success: function(html){ 
    $("#"+ResultsId).append(html); 
    $(".thisBtn').hide(); 
    } 
+0

'$(this).hide()'会失败,因为AJAX回调会设置一个新的'this'上下文。 – Utkanos 2012-07-17 14:10:16

0


<a href="#" name="link" class="clickme" onclick="StartAjax('ResultsId');">Proceed</a> 

    $('.clickme').click(function(event){ 

     var _this = this; 
     $.ajax({ 
      type: "GET", 
      url: "mark.php", 
      cache: false, 
     data: (strg), 
      success: function(html){ 
      $("#"+ResultsId).append(html); 

      $(_this).hide(); 

      } 

     }); 

}); 

所以,你在这里做什么是注册点击你的事件,一旦它运行保存参考当前元素。由于它仍然在相同的范围内运行,因此您可以在成功中访问它,您可以隐藏它。

0

你基本上在问:“如何用jQuery选择元素”。在你的HTML的当前状态,链接可能会被有针对性的,像这样:

$('a[name=link]').hide(); 

然而,由于代码在调用由链路的事件回调运行时,我们可以使用相对引用。 @Jure C.的答案显示了这一点。另一个会是:

success: (function(link) { return function(html) { 
    $('#'+ResultsId).append(html); 
    link.hide(); 
}; })($(this)) 
+0

作品,非常感谢你。你为我节省了很多时间! – 2012-07-17 14:06:37