2011-07-12 8 views
0

1つのdivはうまく動作しますが、複数のdivを使用するとすべて同時に展開されます。あなたが二回同じクラス名を持つdiv要素を持っている2番目の例ではJQueryはページ上のすべてのdivを展開します

ここ

1X http://jsfiddle.net/uPzXh/1/

ここ

2倍 http://jsfiddle.net/uPzXh/

+0

何が起こると思われますか?それは正常に動作しています... –

+0

あなたの問題についての詳細をご提供ください。 –

+0

divを別々に展開する – Writecoder

答えて

2

はいかが:

jQuery(document).ready(function() { 
    jQuery(".lol").hide(); 
    jQuery(".lollink").click(function() { 
     jQuery(this).prev().slideToggle(500); 
     jQuery(this,".new").hide(); 
    }); 
}); 

ところでdivaでスペックに応じて許可されていません。

0

。だから、このコード行:

jQuery(".lol").slideToggle(500); 

あなたは笑のクラス名を持つすべての要素を開く..行うには、それを言うことやっています。 2番目のdivのクラスをlol2に変更するとこれが修正されます。

私はあなたがクリック機能内 $(this)を使用する必要があると思う
+1

ポイントを失います。要素は同様に配置されているように見え、したがって同じクラスを持つことは理にかなっています。 –

+0

@MichealMior質問に正しく答えたときに、あなたはダウン投票しませんか?彼は両方の部門が拡大している理由を尋ね、私はそれを説明した。申し訳ありませんが、質問の壮大な理解を確認することができませんでした。 – BentOnCoding

+0

@MichealMiorあなたの深い理解を考えれば、なぜあなたは答えを提示しなかったのですか? – BentOnCoding

0

あなたが探しているのは、1つのリンクをクリックしたときに1つを展開することです(どちらも展開しないでください)。それが右なら、あなたはこのような何かを行うことができます。

jQuery(".lollink").click(function() { 
    jQuery(this).hide().parent().find(".lol").slideToggle(500); 
}); 

これは、クリックされた要素を隠し、親要素を取得し、クラス.lolとその要素の子孫を見つけて、その上にスライドを切り替えます。

更新されたフィドルhereを参照してください。

関連する問題