ich die Jquery Art und Weise mit engsten versucht, zu überprüfen, ob ein Klick außerhalb eines Elements ist:überprüfen, ob Klick außerhalb von Element ist - auf entfernte Element
$(document).click(function(event) {
if(!$(event.target).closest("#wrapper").length) {
console.log($(event.target))
console.log("click outside of #wrapper");
}
});
$("#remove-me").click(function(){
$(this).remove();
console.log("remove me clicked");
});
$("#click-me").click(function(){
console.log("click clicked");
});
<div id="wrapper">
<div id="remove-me">click me to remove from dom</div>
<div id="click-me">click me</div>
</div>
Aber wenn ich #remove-me
klicken, wird der div
entfernt vom DOM - es ist jetzt irgendwo im Raum - und es wird keine closest()
finden. Die überraschende Sache ist, dass der document
Listener immer noch den Klick UND das Element erhält, obwohl es nicht im DOM mehr ...
Wie würde ich richtig einen Weg finden, wenn diese div
in meinem Wrapper ist. Ist das ein jQuery-Problem oder gibt es einen reinen Javascript-Weg? Warum löst der Listener $(document).click()
immer noch auf dem entfernten Element aus?
Ein Weg, fand ich heraus zu überprüfen, ob die div
keine parent()
hat ...
Codepen Beispiel: http://codepen.io/urtopal/pen/BLJgrQ
Zusammenfassung/Frage:
- Warum ist ein Hörer auf ein entferntes Element wird noch ausgelöst (Beispiel oben "Klicken außerhalb von #wrapper" sollte nicht ausgeführt werden, wenn
#remove-me
angeklickt wird)? - Wie löst man das? Kein Trigger überhaupt/oder wie überprüft man, ob es entfernt wurde?
Bitte setzen Sie den entsprechenden Code (HTML) in der Frage. –
Ich bin unklar, was Sie fragen. Wenn du 'remove' entfernst, ist es für immer weg. Dieser Click-Handler wird nie mehr ausgeführt. –
Ich habe keine Ahnung, was Sie fragen, sobald remove-me weg ist, erhalten Sie nur den Klick-Trigger, da wenn Sie innerhalb des Wrappers geklickt haben (außer Sie klicken auf den weißen Bereich außerhalb des Wrappers), gibt es keinen Wrapper außerhalb des Wrappers, so dass die Dokumentenbindung nicht ausgelöst wird. Was versuchst du zu machen? Klären Sie genau, was Sie erreichen möchten – Huangism