Chronos
Aktives Mitglied
Hallo,
ich habe eine Frage zur Event Delegation,
ich habe eine Reihe von Buttons, die alle das gleiche tun, ihren Wert in ein Textfeld schreiben und möchte jetzt,
statt auf jeden Button einen Event-Handler zu legen diesen zunächst auf dessen Elternelement legen und dann entscheiden was getan werden soll.
Zu meinem Versuch der Delegation habe ich ein paar Fragen:
1. Ist der generelle Aufbau so richtig? Meinem Verständnis nach, "lege" ich einen Event-Handler auf ein Elternelement und sobald in diesem geklickt wird, wird der Event-Handler auf dessen Kindelement delegiert.
Stimmt das vom Verständnis her?
2. Kann ich mit $(this) weiterhin, auf das data-value von btn_value zugreifen und wenn nein wie?
3. Der Fehler den ich bekomme, wenn ich einen der Buttons klicke ist:
"Uncaught TypeError: Object [object Object] has no method 'apply'" was sagt mir das?
4. Gibt es sont noch interessantes zur Event-Delegation zu wissen?
ich habe eine Frage zur Event Delegation,
ich habe eine Reihe von Buttons, die alle das gleiche tun, ihren Wert in ein Textfeld schreiben und möchte jetzt,
statt auf jeden Button einen Event-Handler zu legen diesen zunächst auf dessen Elternelement legen und dann entscheiden was getan werden soll.
Code:
// Um Buttons liegendes DIV
var btn_box = $('#btn-box');
// Buttons im DIV
var btn_value = $('a.btn-value');
var txt_value = $('#txt-value');
// Erste Version ohne Delegation:
btn_value.on({
"click": function() {
txt_value.val($(this).attr('data-value'));
}
});
// Mit Delegation:
btn_box.on("click", btn_value), function() {
txt_value.val($(this).attr('data-value'));
};
Zu meinem Versuch der Delegation habe ich ein paar Fragen:
1. Ist der generelle Aufbau so richtig? Meinem Verständnis nach, "lege" ich einen Event-Handler auf ein Elternelement und sobald in diesem geklickt wird, wird der Event-Handler auf dessen Kindelement delegiert.
Stimmt das vom Verständnis her?
2. Kann ich mit $(this) weiterhin, auf das data-value von btn_value zugreifen und wenn nein wie?
3. Der Fehler den ich bekomme, wenn ich einen der Buttons klicke ist:
"Uncaught TypeError: Object [object Object] has no method 'apply'" was sagt mir das?
4. Gibt es sont noch interessantes zur Event-Delegation zu wissen?
Zuletzt bearbeitet: