Tom*_*Tom 7 jquery backbone.js
我有一个观点.
//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 });
}, ....
Run Code Online (Sandbox Code Playgroud)
如何访问触发更改事件的元素(它是一个输入元素)?
因为你在呼唤你得到一个异常_.bindAll上changeInputs.当你这样做时,你会说changeInputs只要它被调用就会绑定到你的对象的上下文.
换句话说,当你提到$(this)你正在发送一个CreatePollView它不喜欢的jQuery 实例.
但是,您希望保留此绑定,因为您正在访问模型(this.model),因此this需要成为其实例CreatePollView.
相反,您可以从您的函数中获取事件并使用该信息target或其他信息:
changeInputs: function(e) { }
Run Code Online (Sandbox Code Playgroud)