0

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 を切り替えます。クリックしたノードだけに制限するにはどうすればよいですか?

ボディのみ一度に開いていただければと思います。すなわち; 別のノードをクリックすると、前のノードの本体が閉じます。

おそらく簡単だと思いますが、私はそれを理解できないようです...

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();
});

ただし、 ボタンをと、またはいくつかの jQuery データを使用して.moreコンテンツにリンクすることをお勧めします。idhref

<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-11T23:58:43.693 に答える
0

おそらく、jQuery UI タブhttp://jqueryui.com/demos/tabs/またはその他の jQuery タブ ソリューションが必要です。

于 2012-04-12T00:00:27.823 に答える