Ist dies möglich, die Ausführung von .click zu zwingen () für alle Elemente, auch diejenigen, die darunter sind?
-
04-10-2019 - |
Frage
HTML:
<div class='a'>a</div>
<div class='b'>b</div>
<div id='log'></div>
CSS:
.a, .b {
width: 100px;
height: 100px;
border: 1px solid black;
position: absolute;
text-align: right;
}
.a {
left: 100px;
top: 100px;
}
.b {
left: 150px;
top: 150px;
}
JS:
$('*').click(function(e) {
log(this.nodeName + ' ' + this.className);
});
function log(s) {
$('#log').append(s + '<br />');
}
Wenn die Kreuzung angeklickt wird, .click()
für .a
wird nicht aufgerufen.
Gibt es eine integrierte Methode, die Ausführung von click()
für alle Elemente zu zwingen, und nicht nur die oberste und seine Eltern, oder muss ich das selbst implementieren?
Lösung
Ich denke, dass das Verhalten Sie beobachten korrekt ist. Wenn das oberste Element klicken derjenige unter kein Klickereignis bekommen obwohl es sieht es in dem „geklickt“ Bereich ist. Als Abhilfe können Sie manuell die Klick-Ereignis auslösen:
$('.a').click()
.
Beim click
ohne Argumente entspricht trigger('click')
, die das angegebene Ereignis auslöst. Sie finden weitere Informationen in dem Trigger Hilfethema finden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow