0

jqueryで「this」の子divを選択してトグルを適用し、同時にクリックイベントを処理するリンク効果を無効にするにはどうすればよいですか?

ここにhtmlがあります:

<a href="#" class="title">Link</a>   
<div class="data"> content here </div>
<a href="#" class="title">Link</a>    
<div class="data">
    content here
</div>

ここに私のjqueryコードがあります:

$('a.title').each(function(event){  

    var selection = $(this).find('.data');

    $(this).click(function(event){
        $(div).toggle();
        event.preventDefault();
    });
});

私はそれをこれに変更しましたが、うまくいきました:

$('a.title').each(function(){
    $(this).click(function(event){
        var selection = $(this).parent().children('.data');
        $(selection).toggle();
        event.preventDefault()
    });
});
4

4 に答える 4

2

このようなもの:

$('a.title').click(function(event){

    var $selection = $(this).next('.data');
    event.preventDefault();
    $selection.toggle();              

});
于 2012-08-08T06:06:47.493 に答える
2
$('a.title').on('click', function(e){  
    e.preventDefault();
    $(this).next('.data').toggle();
});​
于 2012-08-08T06:07:39.140 に答える
1

あなたはこのような何かを求めていますか

http://jsfiddle.net/pVKcm/1/

$('a.title').click(function(event){
            event.preventDefault();
    $(this).next('.data').toggle();
});​
于 2012-08-08T06:05:22.687 に答える
0

関数を使用する必要はありませんeach()。jQuery は、一致したすべての要素にイベントを適用します。また、div要素は要素の子ではありませんa。ただし、次の要素を選択するには、次の関数divを使用できます。next()

$('a.title').click(function(event){
    var selection = $(this).next('.data');
    selection.toggle(); 

    event.preventDefault();       
});
于 2012-08-08T06:07:14.790 に答える