当我在drupal视图中单击一个节点时,它会切换视图中每个节点的主体,而不仅仅是我正在单击的节点。如何让jquery仅切换我正在单击的节点?下面是我的节点模板( node -type.tpl.php)头部的代码。
<script>
$("button").click(function () {
$(".more").toggle();
});
</script>
以及要切换的主体的代码。
<div class="more"><?php print $node->content['body']['#value']; ?></div>
目前,它在我的整个视图中切换类为"more“的每个div,而不仅仅是在我所单击的节点中。如何将其限制为仅单击的节点?
我也喜欢它,如果身体在同一时间是打开的。当一个不同的节点被点击时,前一个节点的主体切换为关闭。
我相信这可能很容易,但我就是想不通……
发布于 2012-04-11 23:58:44
该按钮相对于.more
位于何处
如果按钮位于.more
元素中,则需要执行以下操作:
$("button").click(function () {
$('.more').hide();
$(this).closest(".more").show();
});
如果该按钮不是.more
的父级或祖先,则需要执行更多操作。如果这些按钮与.more
元素的顺序相同(并且没有任何不相关的按钮),则可以这样做:
$("button").click(function () {
$('.more').hide();
$('.more').eq( $('button').index( $(this) ) ).show();
});
但是,最好使用id
和href
或一些jQuery数据将按钮链接到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 Tabs。
发布于 2012-04-12 00:00:28
您可能需要jQuery UI选项卡、http://jqueryui.com/demos/tabs/或其他一些jQuery选项卡解决方案。
https://stackoverflow.com/questions/10115592
复制