jquery onclick hide / show div

时间:2012-02-06 12:05:30

标签: jquery

我有一个显示朋友请求的php文件,假设有4个请求。当用户点击“接受”或“拒绝”链接时,我想用“request_buttons”类隐藏div,但问题是它还隐藏了其他3个div,我只想隐藏按下链接的div。

我的HTML代码是:

<div class="request_buttons">
   <a href="#" onclick="accept(<?php echo $cerere['id']; ?>)">accept</a>
   <a href="#" onclick="refuse(<?php echo $cerere['id']; ?>)">refuse</a>
</div>
<span class="result"></span>

和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">
    <a href="#" onclick="accept(2)">accept</a>
    <a href="#" onclick="refuse(2)">refuse</a>
     </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”消失,消息出现。我不知道它是如何工作的!

3 个答案:

答案 0 :(得分:3)

div class="request_buttons">
   <a href="#" onclick="accept(this);">accept</a>
   <a href="#" onclick="refuse(this);">refuse</a>
</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');
       }
     });
}

答案 1 :(得分:2)

在您的代码中,替换

$.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 :(得分:0)

您可以使用jquery父函数。试试$(this).parent().hide()