Skip to content

fix: 修复展开场景下,添加子节点导致触发展开事件bug#692

Open
IvesWei wants to merge 1 commit intohizzgdev:masterfrom
IvesWei:master
Open

fix: 修复展开场景下,添加子节点导致触发展开事件bug#692
IvesWei wants to merge 1 commit intohizzgdev:masterfrom
IvesWei:master

Conversation

@IvesWei
Copy link

@IvesWei IvesWei commented Mar 9, 2026

No description provided.

@hizzgdev
Copy link
Owner

hizzgdev commented Mar 9, 2026

感谢支持 @IvesWei

这并不是 bug,这是故意加上去的。

我特意找了这段代码的历史 f6005ae#diff-053107ea442600706ba811ac9afc51a58f7b9c86fa9f374b46c5c3c29a58287aR1064

想起来它应该是当时支持快捷键的时候特意增加的功能,如果用快捷键给一个节点添加了子节点,而这个节点又不是展开状态,在使用的时候将会觉得不太正常。

我可以理解从某种角度来看,可以把它认定为一个 bug ,但即使如此,我们也不能这么修改了。毕竟这段逻辑已经存在12年了。如果直接修改它的行为反而会让老用户认为引入了一个新 bug。

要解决你的问题,我想最好的办法是给 add_node 这个方法增加一个可选参数来修改这个默认行为。默认情况下添加子节点会自动展开父节点,但是设置了这个新的可选参数之后,就可以让它不默认展开。你觉得如何?

@IvesWei
Copy link
Author

IvesWei commented Mar 10, 2026

感谢支持 @IvesWei

这并不是 bug,这是故意加上去的。

我特意找了这段代码的历史 f6005ae#diff-053107ea442600706ba811ac9afc51a58f7b9c86fa9f374b46c5c3c29a58287aR1064

想起来它应该是当时支持快捷键的时候特意增加的功能,如果用快捷键给一个节点添加了子节点,而这个节点又不是展开状态,在使用的时候将会觉得不太正常。

我可以理解从某种角度来看,可以把它认定为一个 bug ,但即使如此,我们也不能这么修改了。毕竟这段逻辑已经存在12年了。如果直接修改它的行为反而会让老用户认为引入了一个新 bug。

要解决你的问题,我想最好的办法是给 add_node 这个方法增加一个可选参数来修改这个默认行为。默认情况下添加子节点会自动展开父节点,但是设置了这个新的可选参数之后,就可以让它不默认展开。你觉得如何?

@hizzgdev 我觉得这个建议很好,但是当前这个问题在我的项目中急需解决,我当前已在项目中打了补丁包,来解决这个问题,后续你在jsmind这个开源库中补充可选参数解决该问题后,我可以再更新包版本来优化解决方案,感谢你能秉持开源精神以及对开源项目所做的贡献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants