- 已编辑
使用的是Simple BootStrap主题,更新之后,新写的文章,目录不起作用,更新之前的文章没问题,正常,有相同遇到的小伙伴儿嘛??作者大大知道啥问题不哦?
点击目录的时候,报这个错。。
Uncaught Error: Syntax error, unrecognized expression: #目录名称
使用的是Simple BootStrap主题,更新之后,新写的文章,目录不起作用,更新之前的文章没问题,正常,有相同遇到的小伙伴儿嘛??作者大大知道啥问题不哦?
点击目录的时候,报这个错。。
Uncaught Error: Syntax error, unrecognized expression: #目录名称
@Ryan Wang 快试试,你们在1.5.1加的转码出现了别的问题,新文章目录全崩了
@qinhua 我记得你们也遇到过这个问题,想知道有没有处理呢,不太明白为什么进行 URLEncode 之后就无法进行锚点定位。如果需要我们做修改可以回复一下。
cetr 这应该是改为由前端渲染 Markdown 之后表现和原来不一样导致的,不是升级到 1.5.1 的问题。但凡我们发测试版的时候大家能积极点… 算了
老的主题使用Tocbot做目录的。升级到 1.5 应该都会有这个问题
qinhua 但这个问题被官方定义为bug,而且在 master 分支已经被修复,只是还没有发版本。另外,对于这种锚定位来说,对特殊字符做 urlencode 处理才符合对浏览器的支持。你可以用 [TOC] 生成的试试。
@cetr 的主题通过使用 tocbot master 的代码修复了。
针对 Simple BootStrap 主题 ,以下是我的修改方案(不懂前端,只是换了实现方式)
找到该文件:/source/js/post.js
修改 generateCatalogs 函数:
将下面这段:
$(`${to} a[data-catalog-target]`).on('click', function (event) {
let titleId = `#${$(this).attr("data-catalog-target")}`;
changeUrlAnchor(titleId);
let offsetTop = $(titleId).offset().top - 20;
$("html,body").animate({scrollTop: offsetTop}, 300);
event.preventDefault();
});
改成:
$(`${to} a[data-catalog-target]`).on('click', function (event) {
let originTitleId = `${$(this).attr("data-catalog-target")}`;
let titleId = `#${originTitleId}`;
changeUrlAnchor(titleId);
let offsetTop = document.getElementById(originTitleId).offsetTop - 20;
$("html,body").animate({scrollTop: offsetTop}, 300);
event.preventDefault();
});
仅供参考。