javascript - 在 Backbone.js 事件回调中,这是什么,我如何访问触发的元素?

标签 javascript backbone.js

我想知道为什么 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/

相关文章:

javascript - ReplaceWith 并在 jQuery 中提醒消息

javascript - Gulp order - 如何在最后连接或添加某个 javascript 文件?

javascript - window.load文件读取不运行

javascript - 如何重新绘制附加在 svg 中但不显示的圆圈?

backbone.js - Backbone.Marionette model.destroy 问题

javascript - AngularJS:后台进程

javascript - 如何使图像标题显示在滚动条上

javascript - 主干 - this.$el vs $(this.el)?

backbone.js - 在 View 渲染时触发多个事件

mod-rewrite - 如何动态设置基础标签?