jquery onclick hide/show div
我有一个显示朋友请求的PHP文件,可以说有4个请求。当用户点击接受或拒绝链接时,我想隐藏类为“request_buttons”的div,但问题在于它隐藏了其他3个div,我只想隐藏链接被按下的div。jquery onclick hide/show 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:用我想出了一个sollution由Royi纳米尔提供的代码(错误)。 我修改了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” dissapear,显示消息。我不知道如何,但它的工作原理!
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');
}
});
}
在代码中,有
$.ajax({
type: "POST",
url: "request.php?action=accept",
context: $('#'+id),
success: function(){
$(this).parents('.request_buttons').hide();
$('.result').html('Request accepted');
}
});
在这种情况下,'this'不指向被点击的元素。 – Stefan 2012-02-06 12:13:57
它的确如此。请参阅$ .ajax中的上下文参数(..) – techfoobar 2012-02-06 12:15:18
啊,对不起!没有注意到上下文属性。当我评论它时,我认为你的帖子看起来不一样。 +1一个伟大的解决方案! – Stefan 2012-02-06 12:19:07
更换
$.ajax({
type: "POST",
url: "request.php?action=accept",
data: "id="+id,
success: function(){
$('.request_buttons').hide();
$('.result').html('Request accepted');
}
});
您可以使用jQuery的父函数这一点。尝试$(this).parent().hide()
确实,你是对的。正如mugur所说,我必须给予div独特的ID并使用你的代码。它现在在工作,非常感谢你。 – 2012-02-06 12:14:34
不要忘记'id'的参数:) – Stefan 2012-02-06 12:16:47
你应该隐藏链接的父节点而不是链接:t.parent()。hide();通过该代码 – Yorgo 2012-02-06 12:24:13