编辑:如果打开另一个sig,我确实希望其他sig隐藏。
我为论坛的签名设置了切换,我通过切换获得了我想要的内容,但是当我再次点击切换时,我无法弄清楚如何隐藏它。 / p>
function toggleSig(divId) {
$('.forum_signature').each(function(index) {
if ($(this).attr("id") == divId) {
$(this).show(200);
}
else {
$(this).hide(600);
}
});
}
https://jsfiddle.net/4yg83kru/1/
有关如何在再次点击时隐藏切换功能的任何想法? (我是JS / jQuery的新手)
答案 0 :(得分:1)
您可以将show方法更改为切换,因此单击的“id”将切换,另一个将隐藏,如果其可见
function toggleSig(divId) {
$('.forum_signature').each(function(index) {
if ($(this).attr("id") == divId) {
$(this).toggle(200);
}
else {
$(this).hide(600);
}
});
}
答案 1 :(得分:0)
您可以使用切换事件:
function toggleSig(divId) {
$('.forum_signature').each(function(index) {
if ($(this).attr("id") == divId) {
$(this).toggle(200);
}
});
}
注意:这不是唯一的方法,但在我看来,这对你来说很简单。
这个只打开点击的一个:
function toggleSig(divId) {
$('.forum_signature').hide()
$('.forum_signature').each(function(index) {
if ($(this).attr("id") == divId) {
$(this).show(200);
}
});
}
您可以在此处查看:
答案 2 :(得分:0)
传入项目的id并循环遍历所有项目并做一些看起来有点脏。您可以使代码更通用。给你的锚标签一个css类。
<a class="myA">Toggle Signature</a>
<div id="1" class="forum_signature" style="display:none;">
Signature
</div>
<a class="myA">Toggle Signature</a>
<div id="2" class="forum_signature" style="display:none;">
Signature 2
</div>
现在javascript来处理隐藏和显示
$(function(){
$(".myA").click(function(e){
e.preventDefault();
var c= $(".forum_signature:visible"); //Get currently visible one
$(this).next().toggle(); //Show the current one
c.hide(); // Hide the previously visible one
});
});
Here是一个有效的jsbin样本