2010-08-29 89 views
0

现在你点击一个链接,它发送ajax调用,并在成功之前预先输出。不,我想,如果你点击链接,而其打开,那么它应该关闭/隐藏输出。jQuery:如果再次点击,隐藏

function MoreFriendOptions(friend){ 
$.ajax({ 
     type: "POST", 
     url: "misc/GetMoreFriend.php", 
    data: { 
    mode: 'ajax', 
    friend : friend 
    }, 
     success: function(msg){ 
     $('#MoreFriendInfo'+friend).prepend(msg); 

     } 
    }); 
} 

echo "<div id='MoreFriendInfo".$showInfo['bID']."'></div>"; 
    <div style="float: right;"> 
    <a href="javascript:void(0);" onclick="MoreFriendOptions(<?=$showInfo["bID"];?>)">mer</a> 
    </div> 
+0

在您的问题或事件处理程序或与问题真正相关的任何其他方面没有链接。你*有*开始在你的问题中包括相关信息,在160多个问题后你需要更好地询问问题,否则他们猜测游戏并且对将来没有人找到这个问题很有用。 – 2010-08-29 10:44:56

+0

我的不幸对不起更新 – Karem 2010-08-29 10:59:12

回答

3

您需要的切换方法。

$('a.mylink').toggle(function() { 
    //do your ajax stuff here 
}, function() { 
    //do your close and hide here 
}); 
+1

如果用户点击很多次,该怎么办?它会每隔一段时间重复触发一次AJAX请求。)您需要禁用该链接并在此处以'complete'完成重新启用。 – 2010-08-29 10:48:43

+0

而不是每次都做ajax请求,可能会添加一个关于检查内容是否已经存在但隐藏的建议。 – 2010-08-29 10:51:06

+0

好点尼克!但我认为这取决于场景,如果每个'节目'需要成为新的服务器请求,那么它就可以。否则是的,在做ajax的东西之前,做一个检查,看ajax中是否存在由ajax填充的元素的内容,并且它的open(通过类或者:visible),如果没有,那么只需要做ajax的东西 – 2010-08-29 10:52:13

0

如果你有安装类似

<div class=friends"> 
    <div class="friend1">John Doe</div> 
    <div class="friend2">Jane Doe</div> 
</div> 

然后如果保存在索引中定位,你可以删除/你添加隐藏的元素。

相关问题