我是 backbone 的新手,我正在寻找一种在我按下 Enter 以及单击时触发我的按钮的方法。目前 showPrompt
仅在单击时执行。让它在按下 Enter 时执行的最干净的 DRYest 方法是什么,最好只针对该输入字段。
(function () {
var Friend = Backbone.Model.extend({
name: null
});
var Friends = Backbone.Collection.extend({
initialize: function (models, options) {
this.bind("add", options.view.addFriendLi);
}
});
var AppView = Backbone.View.extend({
el: $("body"),
initialize: function() {
this.friends = new Friends(null, {view: this});
},
events: {
"click #add-friend": "showPrompt",
},
showPrompt: function () {
var friend_name = $("#friend-name").val()
var friend_model = new Friend({ name:friend_name });
this.friends.add( friend_model );
},
addFriendLi: function (model) {
$("#friends-list").append("<li>" + model.get('name') + "</li>");
}
});
var appView = new AppView;
}());
还有,我在哪里可以阅读更多关于这种事件绑定(bind)的信息?主干事件在定义方式上是否与 JS 或 jQuery 事件不同?
最佳答案
假设您正在使用 jQuery
进行 DOM 操作
,您可以创建自己的“微型”插件,在输入。将其放入您的 plugins.js
或您拥有的任何设置脚本文件中:
$('input').keyup(function(e){
if(e.keyCode == 13){
$(this).trigger('enter');
}
});
现在您已经创建了这个“enter”插件,您可以通过这种方式收听 enter 事件:
events: {
"click #add-friend": "showPrompt",
"enter #friend-name": "showPrompt"
}
关于javascript - 单击或按 Enter 时触发 Backbone 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20366768/