2016-08-06 9 views
1

ich für eine Art und Weise bin auf der Suche, dies zu tun:JQuery/Javascript klicken Sie auf Apply * aber nicht auf ein bestimmtes Element und seine Childs

$('*:not(#specific)').on('click',function(e){ 
 
    //execute code 
 
}); 
 

 
//or : 
 

 
$('*').not('#specific').on('click',function(e){ 
 
    //execute code 
 
});

eine Aktion auf alle Elemente anwenden zu können des DOM, aber nicht auf meine spezifischen div und childs.

Aber keiner von ihnen scheint zu funktionieren.

Grundsätzlich versuche ich ein System wie Firebug einzurichten, die einen Umriss auf die letzten Kinder des Elements over anwenden können (dieser Teil ist in Ordnung). Aber nachdem Sie die Gliederung des Elements beibehalten haben, wählen Sie ein Dialogfeld aus und öffnen Sie es. Aber das Dialogfeld, das erscheint, wenn wir auf ein DOM-Element klicken, ist auch ein Teil dieses DOM, der eine unendliche Schleife von Ereignissen erzeugt. Ich kann mein Dialogfeld nicht richtig verwenden.

Danke trotzdem

Antwort

1

dies stattdessen versuchen:

$('body *').not('#specific, #specific *').on('click',function(e){ 
    //execute code 
}); 

Diese #specific und alle seine Kinder ignorieren.

0

Der zweite Code, den Sie geschrieben haben, ist vollständig gültig. Sie können sich auf this Antwort beziehen.

Es ist im Grunde ein: nicht() Wähler:

$('*').not('#specific').on('click',function(e){ 
    //execute code 
}); 
0

Danke Jungs,

$('body *').not('#specific, #specific *').on('click',function(e){ 
 
    //execute code 
 
});

funktioniert perfekt.

Und wenn ich einen Klick auf #Specific binden, ich habe in dem vorherigen Code einzufügen ...

$('body #specific').on('click',function(e){ 
 
    //execute code... 
 
});

Ist das richtig?

Verwandte Themen