#2800·docsify

当 loadSidebar 设置为 true 时, Page Ready 钩子可能不会触发,但没有根侧边栏文件

作者: gkeighren创建于 2026年9月4日更新于 2026年9月4日
标签bug

说明

当网站有侧边栏 只存在于子目录中 ,任何依赖于"已准备好的钩子"的东西都可能无法正常工作. 例如,[docsify-sidebar-collapse] (https://GitHub.com/iPeng6/docsify-sidebar-collapse)插件,该插件对已准备好的钩子附加了点击听器.

预期行为

任何依靠在侧边栏负载后被放出已准备好的钩子的东西,当侧边栏被制成时,即使初始站点负载没有制成.

就实际固定而言,这取决于已准备好的钩子的意图,以及仅在 " 装入巢() " 找到目标文件时开火是否合理。 无论是否找到文件,发射现成的钩子将用`docify-sidebar-collapse'解决具体问题,但这可能是错误的解决办法。

“docsify-sidebar-collapse”还可能使用不同的钩子来附加其点击听器。

实际行为

当首次装入站点时,“load Nested()”从未执行“next”函数所传递的:

  • 路径'是/'
  • 没有`/ sidebar.md',所以电话重复
  • 在下一个呼叫中,`路径'是空弦
  • " 装入() " 出口而不执行 " 下 "

下一个'是由 loadSideAndNav'构建的函数,而cb ()'在这种函数中的唤起最终触发1.callHook ('已准备好');`。

当导航到一个分节时,相关的侧边栏会正确渲染出,而侧边栏会链接所有的工作.

然而,任何依赖于"已经准备好的钩子"的插件都可能无法正常工作,例如docsify-sidebar-collapse插件,该插件附加了点击的收听器,以应对已经准备好的钩子. 例如,由 “docsify- sidebar-collapse” 所显示的切夫龙是可以点击的(以扩展/缩放相关部分), 但只有在准备的钩子起火时才有效:

<img宽="288"高="314" alt="Image" src="https://GitHub.com/user-attachments/assets/84b179dd-d3d9-48eb-8481-38cb9a926677"/".

手动重新装入一个有相关侧边栏的页面解决了这个问题,因为准备的钩子会正确起火.

  • 复制步骤

QQ 设置

创建一个使用 [docsify- sidebar-collapse] (https://GitHub.com/iPeng6/docsify-sidebar-collapse) 插件的站点, 并且有侧边栏 只在子目录中 :

索引.html
节a/
侧边栏( S)
页: 1
页: 1
. . . . . . . .
节b/
侧边栏( S)
页: 1
页: 1
. . . . . . . .

只需要1个分目录;关键条件是load Sidebar'已经设定,但没有根级的 sidebar.md'.

在我的本地网站,我使用docsify-navbar-fixed,链接到每个分节,而不是登陆页带有链接的侧栏,但这个插件没有必要(例如,`index.html'可以包括链接).

步骤

  1. 装入场地
  2. 导航到其中一个分节
  3. 点击侧边栏的切龙
  • 说吧 . . . . . . .

内容来源: docsifyjs/docsify