1

子divにある1つのAタグを除いて、divまたはその第1レベルの子のいずれかがクリックされたときにボックスをポップアップしようとしています。

私は単にクラスを切り替えて、うまく機能するdivを表示/非表示にしています。ただし、リンクをクリックしても、ボックスがポップアップ表示されます。targetとstoppropagationの使用を検討しましたが、コードで機能させることができません。

jQuery:

jQuery(document).ready(function() {
    jQuery(".video_odd").toggle(function()
    {
    jQuery(this).children(".video_desc_box").attr('class', 'video_desc_box_open');
    },
    function(){
    jQuery(this).children(".video_desc_box_open").attr('class', 'video_desc_box');
    });
});

HTMLの概要:video_oddは、クリックすると子div video_desc_boxがクラスをvideo_desc_box_openに切り替えて、表示をnoneではなくinlineに変更するクラスです。

video_odd内のdivであるリンクがクリックされたときにこのスクリプトが実行されないようにするためにtoggleを使用する方法がわかりません。

2レベルの子リンクではなく、他の子がクリックされたときにクラスを変更したい。

助けてくれてありがとう!

編集:私は近づいていると思います:

jQuery(".video_odd").toggle(function(e)
{
if (e.target == jQuery(this).children(".video_list_title")) { return; }
jQuery(this).children(".video_desc_box").attr('class', 'video_desc_box_open');
},
function(){
jQuery(this).children(".video_desc_box_open").attr('class', 'video_desc_box');
});  

でも

(e.target == jQuery(this).children(".video_list_title"))

登録していません。リンクだけでなく、div video_list_titleをすべて一緒に除外するにはどうすればよいですか?)

4

1 に答える 1

0

e.targetはjQueryではありません。

$(e.target).hasClass( "video_list_title")

ずっと近いです!

于 2012-03-24T21:07:25.063 に答える