【发布时间】:2021-06-27 14:27:25
【问题描述】:
我发现了其他相关问题,但那里的答案都没有真正解决我的问题。 该按钮在 IE 上可以正常工作,但在 Chrome 上不行。 我尝试删除 span 元素,将按钮放在任何其他标签之外,但仍然会触发两次。 这座寺庙扩展了一个“base.html”文件,代码位于一个“主”元素内。
HTML:
<div class="jumbotron p-4">
<div class="container-fluid">
<h1 class="jumbotron-heading">{{ category.name }}</h1>
<div>
<strong id="like_count">{{ category.likes }}</strong> likes
{% if user.is_authenticated %}
<button id="like_btn" data-categoryid="{{ category.id }}" class="btn btn-primary btn-sm" type="button">
<span data-feather="thumbs-up"></span>
Like Category
</button>
{% endif %}
</div>
</div>
JQuery:
$(document).ready(function() {
$('#like_btn').click(function() {
alert('button clicked');
});
});
【问题讨论】:
-
你可以尝试在 ready 函数之后添加一个
console.log('ready'):来检查它是否被触发了两次。我无法重现您的问题。我怀疑,不知何故,这个脚本被包含了两次。 -
我认为和@Moritz 一样,因为我用你的代码(jsfiddle.net/2a18n6yz)创建了一个小提琴,但它对我有用。搜索检查器中是否有 2 次点击事件。
-
@Moriiz 谢谢。这实际上帮助我解决了这个问题,因为 Chrome 开发工具没有显示脚本是否加载了两次。我正在关注一个声称在正文末尾添加脚本有助于页面加载速度更快的教程。我找到了这个question 所以我将脚本移到了头部,这解决了问题。
标签: javascript html jquery django-templates