我在backbone的blur和click事件上遇到了一些麻烦。我有一个视图(代码如下),它创建了一个带有按钮的小搜索入口div。我弹出这个div并把焦点放在入口字段上。如果有人点击关闭(blur),我会通知父视图关闭这个视图。如果他们点击了按钮,我会启动一个搜索。
blur行为工作正常,但是当我点击按钮时,我也得到了blur事件,而不能得到click事件。我的结构正确吗?
顺便说一句,其他一些帖子建议在div中添加定时器,以防它在click事件触发之前关闭。我可以完全注解掉关闭,但仍然只得到blur事件。这些事件是否在某种先com先服务的基础上一次只触发一个?
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!");
}
});
1条答案
按热度按时间8fq7wneg1#
我不确定是什么问题,但这里是jsbin code。