2009-08-31 6 views
3

私は今朝のjQuery初心者です。これはアンカーに付随するdivを表示するためのコードですクラス 'foo'を使ってdiv内で呼び出します。それは動作しません:PjQueryのクリックイベントを作成する方法は、同じ親要素内に入れ子になっている要素にのみ影響します。

$('div.foo').children('a').click(function(event){ 
    event.preventDefault(); 
    if ($(this).closest('div').('div').is(':hidden')) { 
     $(this).closest('div').('div').show("slow"); 
    } else { 
     $(this).closest('div').('div').hide("slow"); 
    } 
}); 

HTML:

<div class="foo"> 
    <a href="#" title="">Click me!</a> 
    <div>And this will appear!</div> 
</div> 

私は(もちろんのネストされたdiv要素の実際の内容から離れて)複数の同一のfoo divを持ってできるようにしたいのですが、すべての私は、含まれているdivに 'foo'クラスを割り当てて、包含アンカーにクリック時にdivを表示させる必要があります。

このようなことも可能ですか?回答には事前に感謝します。

答えて

6

( 'div.faq' を仮定してはHTMLに基づいて、 'div.foo' ことになっている)の代わりにこれを試してみてください。この

$('div.foo a').click(function(event){ 
    event.preventDefault(); 
    $(this).next().toggle('slow'); 
}); 
+0

は、あなたの作品を先生ありがとうございました完全に! – tjbp

1

をお試しください:

$('div.foo').children('a').click(function(event){ 
    event.preventDefault(); 

    var parent = $(this).closest('div'), 
    child = $('div', parent); 

    if (child.is(':hidden')) { 
     child.show("slow"); 
    } else { 
     child.hide("slow"); 
    } 
}); 
+0

申し訳ありませんが、本当に 'div.foo'を意味していました。応答をありがとう、これも完全に動作します - コリンのコードは少しきれいです:) – tjbp

関連する問題