单击或按enter键时触发主干事件
Backbone event firing on click OR press enter
我是主干网的新手,我正在寻找一种方法,当我按下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;
}());
此外,我在哪里可以阅读更多关于这种事件绑定的信息?主干事件与JS或jQuery事件的定义方式不同吗?
假设您将jQuery
用于DOM manipulation
,您可以创建自己的"微小"插件,在输入中触发Enter事件。把它放在你的plugins.js
或你拥有的任何设置脚本文件中:
$('input').keyup(function(e){
if(e.keyCode == 13){
$(this).trigger('enter');
}
});
现在您已经创建了这个"输入"插件,您可以通过以下方式收听输入事件:
events: {
"click #add-friend": "showPrompt",
"enter #friend-name": "showPrompt"
}
您可以在AppView
中的events
哈希中再添加一个event
。
events: {
"click #add-friend": "showPrompt",
"keyup #input-field-id" : "keyPressEventHandler"
}
其中#input-field-id
是要在其上添加事件的。
然后在AppView
中添加eventHandler
。
keyPressEventHandler : function(event){
if(event.keyCode == 13){
this.$("#add-friend").click();
}
}
注意:此代码未经过测试,但您可以考虑以这种方式进行测试。
看看这个,了解Backbone
是如何在View
中处理events
的。
相关文章:
- Keyup 事件侦听器在 Chrome 的 Ominbox 上按下 Enter 时触发
- 如何在JavaScript中为ENTER事件充值
- 单击或按enter键时触发主干事件
- 单击按钮时提交 OnClick 事件,但在键盘上按 Enter 时不提交
- 防止在文本框中按 Enter 后触发模糊和键控事件
- 如何通过 Enter 键在剑道 UI 网格上触发过滤器事件
- 使用 jQuery 触发 Enter 事件
- 如何检测点击事件是否已由“Enter”触发
- 按下 Enter JavaScript 时的事件
- Google 地方自动填充place_changed事件会在提交表单后按 Enter 键触发
- j查询添加 在键事件 Enter 上,使用 将其发送到后端
- 页面不应在带有引导模式的fire-enter事件中刷新
- onKeypress在Chrome中不起作用的文本字段上的Enter Key事件
- 如何在jquery中识别ENTER事件
- Ontextchanged事件不工作,没有按enter或选项卡在asp
- 我怎么知道一个特定的事件.keyCode对应一个字符,而不是一个命令键(如箭头、tab或enter)
- 只需按Enter键即可附加文本更改事件
- Dojo /连接“onKeyPress"ENTER事件在本地工作,但在测试服务器上不起作用
- 如何将基于enter键的事件分配给选定的<
- 内的元素
- 在某些情况下,KeyPress事件不会在边缘触发Enter键