Mam widok.Jak uzyskać element, który wywołał zdarzenie za pośrednictwem modułu obsługi zdarzeń szkieletu
//define View
var CreatePollView = Backbone.View.extend({
events: {
"click #addOption": "addOption",
"change .dynamicInput": "changeInputs"
},
initialize: function() {
_.bindAll(this, "render", "addOption", "changeInputs");
this.model.bind('change', this.render);
},
changeInputs: function() {
var newVal = $(this).val(); // this throws exception in jquery script
this.model.set("Subject", { Subject: newVal });
}, ....
Jak uzyskać dostęp do elementu (jest to element wejściowy), w którym wywołano zdarzenie zmiany?
+1 dla dodanego wyjaśnienie _.bindAll naprawdę interesujące i czasami nadal borykają się z tych powiązań :) – Sander
Wewnątrz metody 'changeInputs' możesz uzyskać specyficzny element, który został zmieniony przez wywołanie' $ (e.currentTarget) 'lub' $ (e.target) 'jak sugerował Brian, w zależności od twoich potrzeb. 'e' jest obiektem argines zdarzenia jquery, więc przeczytaj dokumentację jquery, aby zrozumieć różnicę. –
dzięki chłopaki @Sander. Dobre wytłumaczenie. Wydaje się, że to właściwy sposób. W międzyczasie udało mi się go uruchomić, ale tak naprawdę nie rozumiem skąd pochodzi zbiór argumentów ... zobacz poniższy kod: changeInputs: function() { var newVal = arguments [0] .srcElement. wartość; this.model.set ("Subject", {Subject: newVal}); }, – Tom