因为喜欢,所以开始,因为热爱,所以坚持
现在位置:首页 > 帮助教程 > 修复一个 默认模版 评论表单 的小 bug(无法在前台正常回复其他评论)

修复一个 默认模版 评论表单 的小 bug(无法在前台正常回复其他评论)

作者:独元殇 分类:帮助教程 时间:2022-12-18 浏览:263 评论:2

emlog pro 更新到 1.9.0 后,default 模版引入了一个 bug。

表现

bug 的影响不大,就是在前台进行评论时,回复别人的内容,点击回复,回复完毕后页面跳转,会发现没有回复你想回复的那条评论,而是又新开了一条评论。

当然,一般情况下,在前台进行相互回复比较少见,很多时候是在后台在审核时连带回复了。当然这个 bug 也要解决。

原因

1.9.0 的评论区的评论条目的 id 变了,以前是 comment-2comment-14 这种,现在是直接成数字了,214,其目的是为了兼容 emlog 系统原来内置的 评论链接,比如访问 127.0.0.1/?post=2#24 就能自动跳转到这个文章页面的 id 为 24 的评论。

但,html 这里改了,common_tpl.js 可没跟着改,于是在点击「回复」按钮时,其动作函数无法获取到 id 号了。

解决方案

很简单,就是在后台的【系统】--【设置】--【基础设置】--【首页底部信息】 下面添加如下的代码。

当然,只有使用 default 模板才有效,其他模板请忽略这篇文章。

<script>
$(".com-reply").click(function () {
    let $ele, getpid
    $ele = $(this).parent().parent()
    getpid = $ele.parent().attr("id")

    // 一秒钟后,让 pid 等于要回复的评论
    setTimeout(function(){$("#comment-pid").attr("value", getpid)}, 1000);
})
</script>

因为 common_tpl.js 会后于 上面这段代码运行,所以,上面那个改 value 的动作,是在 1 秒(也就是 1000 毫秒)以后才执行。

备注

系统修复这个 bug 很简单,就是把 common_tpl.js 里的 getpid = $ele.parent().attr("id").substring(8) 后面的 .substring(8) 去掉。

如果模板开发者要参考 default 时,请务必注意这一点。🤝

评论列表
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论
那多记忆
那多记忆管理员初来乍到 Lv.1
#1
👍🏻 感谢反馈,整理的非常棒。 看完世界杯决赛, 我再仔细看下。
2022-12-18 20:42回复
独元殇
独元殇作者初来乍到 Lv.1
@那多记忆:这个其实不是反馈,是发现新版本又引入了一个 bug,然后暂时的一个解决方案。
2022-12-18 22:05回复