如何在Backbone.js事件处理程序中指定子节点?
How do I specify children only in the Backbone.js event handler?
我有一个视图里面有一个视图(相同的视图实际上,它的递归)。我希望只有内部视图来处理从'a' onclick事件的事件。我试图通过在选择器中只指定直接子元素来做到这一点,但它不起作用。
第四尝试:<>之前事件:{'click>a': 'toggle'},之前
和
<>之前事件:{'click> a': 'toggle'},之前但是他们不工作,有什么建议吗?(注意:像使用标签和类这样的事情是行不通的,因为视图是递归的(这意味着内部和外部都有相同的事件定义)
我遇到了同样的问题,并通过在子视图中停止事件的传播来解决它。例如…
events: {
'click a': 'toggle'
},
toggle: function (e) {
// Stop event here.
e.stopImmediatePropagation();
// Do more stuff...
}
这并不能回答如何指定特定子选择器的问题,但它可以防止事件传播到其他处理程序。
如果单击特定元素时没有其他事件触发,则
停止 e.stopImmediatePropagation()
很方便。否则,您应该将e.currentTarget
与您想要选择的元素进行比较。例如
events: {
'click a': 'toggle'
}
toggle: function(e) {
if (e.currentTarget == this.$el.find('a')[0]) {
...
}
}
这样,如果你有一个父视图也触发一个事件当链接被点击,它不会被e.stopImmediatePropagation();
您可能必须指定开始选择器…这意味着我不确定基本选择器是假设的。
events: {
'click #parent > a': 'toggle'
}
还没有试过,但它可能工作。
相关文章:
- 选择<李>使用普通JavaScript的子节点,而不是孙节点
- js循环遍历单击的元素子节点
- 如何将数据添加到json的子节点
- 删除HTML节点而不删除其子节点
- 如何在javascript DOM api中获取具有给定条件的子节点
- 仅使用某些子节点访问xml中父节点的子节点
- 检测单击子节点并发送槽事件处理程序
- 从 d3.js 中的树中选择节点的子节点
- 访问所选剑道树视图节点的子节点
- 为什么正文标记后的脚本标记在子节点中计数
- 难以获取使用属性选择的节点的子节点
- 使用Javascript设置带有子节点的父节点的类's文本等于.
- 如何确定父节点是否有子节点
- 在没有 jquery 的情况下更改子节点(父节点具有 ID)中的链接文本
- Javascript - 子节点计数
- 在子节点上重复
- hammer.js - 父节点和子节点上的不同滑动处理程序
- 提供程序在IE 10/11中给出错误“onlyChild必须传递一个只有一个子节点的子节点”
- React -将点击处理程序附加到动态子节点
- redux通过connect传递事件处理程序;mapDispatchToProps vs.渲染带有props的子节点