点击a[article-meta__tags]标签时,浏览器会首先处理a标签的默认行为,即跳转到href指定的链接。
但如果在该div[recent-post-item]上已经定义了一个onclick事件,当再点击a[article-meta__tags]标签时,由于事件冒泡,该onclick事件可能会被触发,从而覆盖了a[article-meta__tags]标签的默认行为。

解决方法

定位到postList.pug,阻止事件冒泡,写一个新函数aClickHandler进行处理。将a[article-meta__tags]标签的onclick事件改为函数触发,即 window.event.cancelBubble=true; 修改为 sco.aClickHandler(event)

1
2
3
4
5
//- 修改前
a.article-meta__tags(href=url_for(tag.path), onclick="window.event.cancelBubble=true;")

//- 修改后
a.article-meta__tags(href=url_for(tag.path), onclick="sco.aClickHandler(event)")

main.js新增aClickHandler函数,使用**event.stopPropagation()**阻止事件继续冒泡到更高级别的元素。

1
2
3
4
5
6
7
8
9
10
11
12
···

let sco = {

···

aClickHandler: function(event) {
event.stopPropagation();
}
}

···

贡献