0

当我在 drupal 视图中单击一个节点时,它会切换视图中每个节点的主体,而不仅仅是我单击的节点。如何让 jquery 仅切换我正在单击的节点?这是我的节点模板头部的代码(node-type.tpl.php)

 <script>
 $("button").click(function () {
 $(".more").toggle();
 });
 </script>

以及要切换的主体代码。

 <div class="more"><?php print $node->content['body']['#value']; ?></div>

目前,它在我的整个视图中使用“更多”类切换每个 div,而不仅仅是在我单击的节点中。如何将其限制为仅单击的节点?

如果一次只打开身体,我也会喜欢它。IE; 当点击不同的节点时,前一个节点的主体切换为关闭。

我敢肯定这可能很容易,但我似乎无法弄清楚......

4

2 回答 2

1

按钮相对于.more哪里?

如果按钮在.more元素中,你想做这样的事情:

$("button").click(function () {
    $('.more').hide();
    $(this).closest(".more").show();
});

如果按钮不是 的父级或祖先.more,您将需要做更多的事情。如果按钮与元素的顺序相同.more(并且没有任何不相关的按钮),您可以这样做:

$("button").click(function () {
    $('.more').hide();
    $('.more').eq( $('button').index( $(this) ) ).show();
});

.more但是,最好使用 anid和 ahref或一些 jQuery 数据将按钮链接到内容:

<button class='morebutton' data-more="#more1">Button 1</button>
<button class='morebutton' data-more="#more2">Button 2</button>
<div class='more' id="more1">More Number 1</div>
<div class='more' id="more2">More Number 2</div>

脚本:

$(".morebutton").click(function () {
    $('.more').hide();
    $( $(this).data('more') ).show();
});

演示:http: //jsfiddle.net/jtbowden/EfUxt/

有一些库可以帮助处理这些情况,例如 jQuery UI 选项卡。

于 2012-04-11T23:58:43.693 回答
0

您可能需要 jQuery UI 选项卡http://jqueryui.com/demos/tabs/或其他一些 jQuery 选项卡解决方案。

于 2012-04-12T00:00:27.823 回答