zTree_v3 icon indicating copy to clipboard operation
zTree_v3 copied to clipboard

点击+触发展开事件如何阻止事件冒泡

Open YuFy1314 opened this issue 6 years ago • 2 comments

body中有一个点击事件, 当我点击ztree根节点前面的+的时候, 先触发body事件, 再点击一次才出发展开事件, 要怎么才能在展开事件中加阻止冒泡的呢? $("body").bind("mousedown", this.onBodyDown); onExpand: this.expandTree, expandTree(event, treeId, treeNode) { // event.stopPropagation(); return false; }, 代码中的两种阻止事件冒泡的方法都用过了, 阻止不了, 求解答 @zTree

YuFy1314 avatar Oct 12 '18 12:10 YuFy1314

  1. 可以肯定的是, 因为优化性能的原因,onExpand 回调是有可能进行异步调用的,这样会导致 你针对 event 的操作是无效的。

  2. 一般情况下,如果你针对 onExpand 进行处理,还需要针对 onCollapse 进行处理的(当然了,这个对于本 Issue 无效)

  3. 针对你这个问题的解决方案建议:给你的 onBodyDown 事件中针对 event.target 进行判断,如果是 zTree 内部的 元素(或者是部分指定的元素),就不进行处理。这样就可以很好的实现你的需求了

zTree avatar Oct 15 '18 01:10 zTree

感谢作者的建议, 我之后尝试一下, 谢谢

YuFy1314 avatar Oct 15 '18 08:10 YuFy1314