Mit einer Glyphe-Bibliothek wie Font Awesome, Knöpfe oft am Ende aussehen, so etwas zu bekommen die Spanne oder die Taste selbst, je nachdem, wo der Benutzer klickt, so dass ich normalerweise mit etwas am Ende wie folgt:jQuery Event-Erweiterung Ereignisziel oder einen Elternteil spezifischen Typs
$('button').on('click', function($event) {
var $target = $($event.target);
var $button = $target.is('button') ? $target : $target.closest('button');
// useful stuff goes here
}
Ist es möglich, das jQuery Event-Objekt hinzufügen, um ein Verfahren, das diese Funktionalität kapselt, so zu erweitern kann es so genannt werden?
var $button = $event.getSpecificTarget('button');
Ich habe eine JSFiddle erstellt, das Problem zu demonstrieren.
es getan werden könnte, ein normales jQuery-Plugin, aber es wäre sauberer fühlen, wenn es direkt aus dem Event-Objekt zugegriffen werden kann, anstatt über ein Plugin wie folgt aus:
var $button = $.getSpecificTarget($event, 'button');
Interessant ... Mit Ihrer Methode ist das event.target immer noch die Spanne, wenn Sie darauf klicken, aber $ (this) gibt immer die Schaltfläche zurück, egal wo Sie klicken. Ich habe immer event.target anstelle von $ (this) verwendet, da ich dachte, dass es lesbarer wäre - ich habe nie bemerkt, dass es einen Unterschied gab. Sollte dies gelesen haben, denke ich: http://StackOverflow.com/a/21667010/13153 –