我想知道为什么 this 或 $(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...")
}
}
});
用 this 或 $(this) 可以做到这一点是不是有点矫枉过正?
谢谢
最佳答案
在 backbone.js 中,“this”绑定(bind)到 View 对象。
如果您需要访问目标元素,您仍然可以通过 event.target 或 event.targetElement 来实现。看看这个问题 Backbone.js Event Binding
关于javascript - 在 Backbone.js 事件回调中,这是什么,我如何访问触发的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10738449/