2012-03-24 7 views
1

Ich versuche, eine Box zu öffnen, wenn ein div oder eines der untergeordneten Elemente der ersten Ebene angeklickt wird, mit Ausnahme eines Tags, das sich in einem untergeordneten div befindet.jquery toggle click ausschließen untergeordnete Links

Ich bin einfach Klassen wechseln, um das div zu zeigen/zu verbergen, was großartig funktioniert. Wenn jedoch der Link angeklickt wird, erscheint immer noch die Box, die ich nicht haben möchte. Ich habe mit Ziel und Stop-Propagierung betrachtet, aber ich kann nicht mit meinem Code arbeiten.

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'); 
    }); 
}); 

Schnell HTML-Übersicht: video_odd ist die Klasse, wenn darauf geklickt wird es seine Kind div video_desc_box verursachen wird seine Klasse wechseln video_desc_box_open die Anzeige statt Inline-Änderungen keiner.

Ich verstehe einfach nicht, wie man toggle verwendet, um dieses Skript nicht zu starten, wenn ein Link angeklickt wird, der ein div in video_odd ist.

Ich möchte es Klassen ändern, wenn andere Kinder angeklickt wird, nur nicht die 2. Ebene Kind Link.

Danke für die Hilfe!

EDIT: Ich glaube, ich bin immer näher:

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'); 
}); 

jedoch

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

Ist Registrierung nicht. Wie kann ich es div video_list_title alle zusammen auszuschließen (nicht nur die Verbindung?)

+0

Wie sieht Ihr HTML aus? –

Antwort

0

e.target ist kein jQuery.

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

Ist ein gutes Stück näher!

+0

Super, danke für deine Hilfe. – joshmmo

+0

Ich bin froh, dass Sie auch im jQuery-Forum gefragt haben. Ich überprüfe das hier nicht oft. Ich brauche die Punkte hier! –