Tôi có chế độ xem.Cách nhận phần tử kích hoạt sự kiện qua trình xử lý sự kiện đường trục
//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 });
}, ....
Làm cách nào để truy cập phần tử (phần tử đầu vào) mà sự kiện thay đổi được kích hoạt?
+1 để giải thích thêm về _.bindAll thực sự thú vị tôi đôi khi vẫn phải vật lộn với những với phím tắt :) – Sander
bên trong phương thức 'changeInputs' của bạn, bạn có thể lấy phần tử cụ thể đã được thay đổi bằng cách gọi' $ (e.currentTarget) 'hoặc' $ (e.target) 'như Brian được đề xuất, tùy thuộc vào nhu cầu của bạn. 'e' là một đối tượng jquery args, vì vậy hãy đọc tài liệu của jquery để hiểu sự khác biệt. –
cảm ơn các bạn @Sander. Lời giải thích hay. Nó có vẻ giống như một cách thích hợp để làm điều đó. Trong khi đó tôi quản lý để làm cho nó hoạt động, nhưng tôi không thực sự hiểu bộ sưu tập đối số đến từ đâu ... xem mã bên dưới changeInputs: function() { var newVal = arguments [0] .srcElement. giá trị; this.model.set ("Chủ đề", {Chủ đề: newVal}); }, – Tom