Bir görünümü var.Omurga olay işleyicisi aracılığıyla olay tetikleyen öğeyi alma
//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 });
}, ....
Ben elemanı (bir giriş elemanı olan) hangi değişiklik olayı üzerine tetiklendi erişebilir nasıl? Eğer changeInputs
üzerinde _.bindAll
aradığınız çünkü
+1 gerçekten ilginç ben bazen yine de bu bağlar ile mücadele "ChangeInputs" yönteminizin içinde – Sander
, gereksinimlerinize bağlı olarak, Brian'ın önerdiği gibi $ (e.currentTarget) veya '$ (e.target)' terimini kullanarak değiştirilen belirli bir öğeyi alabilirsiniz. 'e' bir jquery olayı args nesnesidir, bu yüzden farklılığı anlamak için jquery'nin belgelerini okuyun. –
Teşekkürler @Sander. İyi açıklama. Bunu yapmak için uygun bir yol gibi görünüyor. Bu arada çalışmayı başardım, ama argüman koleksiyonunun nereden geldiğini gerçekten anlamıyorum .... 'un altındaki kodu inceleyin. Girişler: function() { var newVal = arguments [0] .srcElement. değeri; this.model.set ("Konu", {Konu: newVal}); }, – Tom