0

クリックされた要素の外側の要素を見つける必要がある通常のクリック機能を実行しようとしています。ここにいくつかのコードがあります:

<div class="options">
    <span class='comment_now'>kommentér</span>
</div>

<div class="write_comment_wrap">
    <form method="post" class="write_comment_form">
        <textarea class="write_comment" name="write_comment" placeholder="skriv din kommentar..."></textarea>
        <input type="submit" value="skriv" class="global_button">
    </form>
</div>​

JS:

$('.comment_now').click(function(){
    $(this).closest('.write_comment_wrap').slideToggle();
});​

何も起こっていません。関数内にいるかどうかを確認するためにアラートを作成しようとしました。私は間違ったトラバース機能を使用しています。

4

4 に答える 4

1

試す :

$('.comment_now').click(function(){
    $(this).closest('.options').next('.write_comment_wrap').slideToggle();
});​

デモ: http://jsfiddle.net/HwQLw/

于 2012-05-30T07:59:37.963 に答える
0

これを試して:

$('.comment_now').click(function(){
    $(this).parent().next('.write_comment_wrap').slideToggle();
});​

http://jsfiddle.net/dcVqf/

于 2012-05-30T08:03:03.420 に答える
0

.closest同じdomツリーで最も近い要素を見つけることですが、あなたの場合、スパンの親の.write_comment_wrap兄弟です。.comment_now

$('.comment_now').click(function(){
    $(this).parent().next('.write_comment_wrap').slideToggle();
});​
于 2012-05-30T07:59:25.720 に答える
0

closestDOM ツリーを上にトラバースします。DOM ツリー.comments_nowは次のとおりです。

   - body, etc.
     - .options
       - .comments_now

そのような先祖を持っていないので$(this).closest('.write_comment_wrap')、あなたは何も見つけられません。.comments_now

代わりにできることは次のとおりです。

 $(this).closest('.options').next('.write_comment_wrap').slideToggle();
于 2012-05-30T08:03:38.293 に答える