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

In Backbone.js event callback what is this, and how do I get access to the element triggered?

本文关键字:访问 何访问 元素 事件 js Backbone 回调 是什么      更新时间:2023-09-26

我想知道为什么在将函数附加到 Backbone js 中的事件时,this 或 $(this) 选择器不起作用。请看以下示例代码:

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

这不是有点矫枉过正吗,可以用这个或$(这个)来完成吗?

谢谢

在主干中.js"this"绑定到视图对象。

如果需要访问目标元素,您仍然可以通过 event.target 或 event.targetElement 进行访问。看看这个问题主干.js事件绑定