Ist dies möglich, die Ausführung von .click zu zwingen () für alle Elemente, auch diejenigen, die darunter sind?

StackOverflow https://stackoverflow.com/questions/3744733

Frage

diesen Code :

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?

War es hilfreich?

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
scroll top