【发布时间】:2011-11-14 20:16:15
【问题描述】:
我在处理主干中的模糊和点击事件时遇到了一些问题。我有一个视图(下面的代码),它创建一个带有按钮的小搜索条目 div。我打开这个 div 并将焦点放在输入字段上。如果有人单击关闭(模糊),我会通知父视图关闭此视图。如果他们点击按钮,我将开始搜索。
模糊行为可以正常工作,但是当我单击按钮时,我也会得到一个模糊事件并且无法获取单击事件。我的结构正确吗?
顺便说一句,其他一些帖子提出了一些建议,例如在 div 中添加计时器,以防它在 click 事件触发之前被关闭。我可以完全注释掉关闭,但仍然只能得到模糊事件。这些是否只在某种先到先得的基础上一次触发一个?
PB_SearchEntryView = Backbone.View.extend({
template: _.template("<div id='searchEntry' class='searchEntry'><input id='part'></input><button id='findit'>Search</button></div>"),
events: {
"click button": "find",
"blur #part": "close"
},
initialize: function(args) {
this.dad = args.dad;
},
render: function(){
$(this.el).html(this.template());
return this;
},
close: function(event){ this.dad.close(); },
find: function() {
alert("Find!");
}
});
【问题讨论】:
-
events列表中绑定的事件由 jquery 处理,主干提供回调方法并连接回调。建议首先使用 jquery 进行这项工作,然后你应该能够让它与骨干一起正常工作 -
是的,这就是诀窍。谢谢!基于此信息,我发现这篇文章提供了如何完成这项工作的最终线索:forum.jquery.com/topic/click-blur
-
您能否发布最后的线索,以及它如何帮助您解决问题?
标签: events click backbone.js blur