用jquery多次显示/隐藏div

时间:2009-09-05 20:32:02

标签: javascript jquery show-hide

我想使用jquery从文本链接中显示/隐藏DIV。

与我到目前为止找到的这个网站的例子有什么不同,我需要一种通用的方式在1页上多次这样做,并且能够在任何页面上在全网站上使用它。

如果我可以将JS放在页面中包含的单独文件中,那将是非常好的,所以它可能被包装到一个函数中?

有人可以帮助我吗?为了使它成为通用的,我可以在这里指定一个显示/隐藏的div,其ID为 id =“toggle-hide-1”,只需更改页面中的数字即可使其变得不同显示/隐藏区域

我可以使用一个名称来命名ID,该名称将使该功能显示/隐藏div并将其与显示/隐藏在页面上的其他div分开,我可以为其添加一个数字。

下面是部分代码,它会在链接点击上显示/隐藏div,但这不是我需要的。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" >
$(function() { 
    $(".view-code").click(function(evt) {
        $(".tool_block, .view-code").toggle();
    }); 
});
</script>
<a href="#" class="view-code" >view code</a>
<a href="#" class="view-code"  style="display:none">hide code</a> <br  />

<div class="tool_block" style="display:none" >
this stuff is hidden until we choose to show it!
</div>

3 个答案:

答案 0 :(得分:3)

最好的方法可能是使用自定义属性。如果使用一个属性来标记你的锚点,该属性告诉jquery切换哪个div,那么编写通用代码来完成工作会更容易。

这样的事情:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" >
$(function() { 
    $(".view-code").click(function(evt) {
        var d = $(this).attr("toolDiv");
        $(".tool_block[toolDiv=" + d + "], .view-code[toolDiv=" + d + "]").toggle();
    }); 
});
</script>
<a href="#" class="view-code" toolDiv="1" >view code</a>
<a href="#" class="view-code" toolDiv="1" style="display:none">hide code</a> <br  />

<div class="tool_block" toolDiv="1" style="display:none" >
this stuff is hidden until we choose to show it!
</div>

然后给每个anchor-div对赋予一个唯一的toolDiv值(不一定是数字)。

答案 1 :(得分:1)

如果你可以将整个集合包装在一个div中,那将会很容易。

$(function() {
    $(".view-code").click( function(e) {
        $(this).siblings().andSelf().toggle();
    });
});

<div>
    <a href="#" class="view-code" >view code</a>
    <a href="#" class="view-code"  style="display:none">hide code</a> <br  />

    <div class="tool_block" style="display:none" >
    this stuff is hidden until we choose to show it!
    </div>
</div>

如果它不处理<br />,您可以将兄弟姐妹过滤为div和anchor元素。

答案 2 :(得分:0)

为什么不使用特定的课程呢?您想要显示/隐藏的每个元素都可以有一个名为“toggler”的类,如:

<div class="toggler">
 ...
</div>

然后,您可以立即使用此类切换所有元素的可见性:

$(".toggler").toggle();

在这种情况下,这些元素所在的文档中的位置或者它们是什么类型的元素没有区别。

如果需要全局使用此功能,您始终可以使用自定义函数扩展jQuery本身,如:

$.toggleTogglers = function(toggleClass) {
  $("." + toggleClass).toggle();
};

这很好,因为您可以灵活地选择自己设计的切换自定义类。