我想知道为什么这个或$(this)选择器在将函数附加到Backbone js中的事件时不起作用。看看这个示例代码:
var testView = Backbone.View.extend({
el: $('#test'),
events: {
'keyup #signup-fullname': 'validateFullname'
},
validateFullName: function(e){
if($(this).val() == "mike"){
alert('You are just amazing!');
} else if($(this).val() == "tom"){
alert("mmm.. you fail...")
}
}
});
它不起作用,只有在我这样做时才有效:
var testView = Backbone.View.extend({
el: $('#test'),
events: {
'keyup #signup-fullname': 'validateFullname'
},
validateFullName: function(e){
if($('#signup-fullname').val() == "mike"){
alert('You are just amazing!');
} else if($('#signup-fullname').val() == "tom"){
alert("mmm.. you fail...")
}
}
});
用这个或$(这个)可以做到有点过分吗?
由于
答案 0 :(得分:11)
在backbone.js中,“this”绑定到视图对象。
如果您需要访问目标元素,您仍可以通过event.target或event.targetElement执行此操作。看看这个问题 Backbone.js Event Binding