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

时间:2012-05-24 13:27:42

标签: 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...")
        }
    }
});

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

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...")
        }
    }
});

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

由于

1 个答案:

答案 0 :(得分:11)

在backbone.js中,“this”绑定到视图对象。

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