2009-04-06 50 views
0

私は一度に1つのdivの表示/非表示をトリガーしようとしています。複数のDivを表示/非表示

何が起こっているかは、すべてのdiv(.shareLink)が同時に開くことです。

以下は私のjQueryのです:上記の問題を持つすべてのヘルプははるかに高く評価されるだろう

<dl class="links"> 
    <dd>content</dd> 
    <dt class="description">content</dt> 
    <ul class="tools">  
     <li><a class="trigger" href="#">Share Link</a></li> 
    </ul> 
</dl> 
<div class="shareLink"> 
<?php print check_plain($node->title) ?> 
</div> 

$(document).ready(function(){ 
$(".shareLink").hide(); 
$("a.trigger").click(function(){ 
$(".shareLink").toggle("400"); 
return false; 
}); 
}); 

以下は私のHTMLです。

乾杯。

+0

あなたのHTMLがどのように設定されているのか投稿してください。さもなければ、私たちはあなたを本当に助けることができません。今のところ、shareLinkクラスですべてを選択して切り替えているので、もちろんすべてがオープンしています。 –

+0

また、受け入れられたスタイルの規則に従ってソースコードを書式設定することもお勧めします。http://en.wikipedia.org/wiki/Programming_style#Indenting これにより、コードを読んで理解しやすくなります。 – Calvin

答えて

4

、あなたはこれを実行する必要があります。

$(function() { 
    $("div.shareLink").hide(); 
    $("a.trigger").click(function(){ 
     $(this).parents('dl.links').next('div.shareLink').toggle(400); 
     return false; 
    }); 
}); 

これは、親DLまで歩いた後、次のshareLink divのに上を移動し、それを切り替えます。

+0

ご協力いただきありがとうございます。私は間違ったコードを偶然に入れた。実際のコードは、元の投稿に貼り付けられました。 –

+0

以前と同じ考え方で、dlまでさらに歩いていくだけです。これを示すためにコードを更新しました。 –

0

あなたはしようとする場合があります:

$(document).ready(function(){ 
    $(".shareLink").hide(); 
    $("a.trigger").click(function(e){ 
     e.preventDefault(); 
     $(this).next().toggle("400"); 
    }); 
}); 

答えは、それはあなたの文書の構造に依存しています。上記の関数で動作するサンプルのサンプルを示します。

<a class="trigger">click here</a> 
<div class="shareLink"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
</div> 
1
$(".shareLink").toggle("400"); 

".shareLink" のクラスを使用してページ上の任意のdivを指します。

表示したい特定のdivを区別する方法を見つける必要があります。あなたのHTMLに基づいて

関連する問題