单击事件以排除子项(主干.js)
Click event to exclude children (backbone.js)
我有两个元素,一个嵌套在另一个元素中。(这是一个模式对话框)。当用户单击外部元素时,应触发函数closeModal
,如果用户单击内部元素(其子元素)中的li
,则应触发另一个函数like
。
问题:我查看了其他解决方案,并尝试应用到我的backbone.js视图,但似乎不起作用。有什么不同的地方需要改变吗?
查看
ModalShowItemView = Backbone.View.extend({
el: '#modal_show_item',
events: {
'click div#modal': 'closeModal',
'click li#like' : 'like'
},
initialize: function() {
this.render();
this.clickHandler();
},
render: function() {
$(this.el).show().append( this.template( this.model.toJSON() ) );
},
clickHandler: function() {
var self = this;
$(this.el).click(function(e) {
if(e.target == self) {
self.closeModal();
}
});
},
closeModal: function() {
console.log('closemodal');
},
like: function() {
console.log('like');
}
});
您提到的其他解决方案可能是您需要做的,除了在事件对象本身上像在event.stopPropagation()
中那样做.stopPropagation()
。我不知道通过delegateEvents
绑定的事件处理程序是否会传递任何相关的事件对象,但帮助页面AFAIK中没有对此进行说明。
相关文章:
- 如何在主干js中解析视图中的消息
- 根据屏幕大小显示主干.js集合的子集
- 将View中的项添加到数组中(主干.js)
- 主干.js集合不迭代
- 主干.js视图不会在页面加载时显示,但可以在控制台中与 jQuery 配合使用
- 获取结果未定义(主干.js)
- 主干.js事件处理程序命名的最佳做法
- 将表单对象保存到具有主干.js的模型
- 主干.js将 url 参数传递给集合
- 主干.js(具有 Require.js)变量/范围访问问题
- 模型未在主干.js中呈现
- 主干.js:为每个模型添加验证
- 主干.js绑定到集合“添加”呈现视图两次
- 单击事件以排除子项(主干.js)
- 单击事件在触发一次主干js后停止工作
- 主干.js更改模型的 url 参数,提取不会更新获取的数据
- 使用Paginator(主干.js)时无法检测用户是否已登录
- $(this.el).find()在事件处理程序中工作,而不是在初始化函数(主干.js)中工作
- 主队/客队,在主干.js应用程序中提供球员列表
- 具有大型动态表单的主干js