在Backbone.js事件中回调这是什么,以及如何获得对触发元素的访问?

onl*_*oon 3 javascript backbone.js

我想知道为什么这个或$(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...")
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

它不起作用,它只有在我这样做时才有效:

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...")
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

用这个或$(这个)可以做到有点过分吗?

谢谢

Jac*_*ack 11

在backbone.js中,"this"绑定到视图对象.

如果您需要访问目标元素,您仍可以通过event.target或event.targetElement执行此操作.看看Backbone.js事件绑定这个问题