javascript - 在 n 单击时将 href 添加到锚标记
问题描述
<section>
<a **id="download"** oncontextmenu="return false" > <svg ...
</svg></a>
</section>
<script type="text/javascript">
下面的代码只是为了获得前 2 次点击。
$("#download").click(function(){
$("#download").attr("oncontextmenu", "false");
});
$("#download").click(function({
$("#download").attr("oncontextmenu", "false");
});
这是在第三次单击时添加 HREF 的最终函数。
$("#download").click(finalfunction({
$("#download").attr("href", "<%= downloadLink %>");
});
</script>
但是这段代码不起作用。请帮帮我。
解决方案
ID 必须是唯一的。使用一个类。
拥有一个 eventListener 并计算其中的点击次数
尝试这样的事情
我添加了一些调试
$(".download").on("click", e => {
const anchor = e.currentTarget;
let cnt = anchor.dataset.cnt;
if (cnt === "2") {
anchor.href = anchor.dataset.href;
console.log("clicked 3 times")
}
else {
cnt++;
anchor.dataset.cnt = cnt;
$(".count",anchor).html(`Click ${3-cnt} more time${3-cnt === 1 ? "" : "s"}`)
e.preventDefault()
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section>
<a class="download" href="#" data-cnt="0" data-href="...." class oncontextmenu="return false"><span class="count">Click 3 times</span> <svg ... </svg></a>
<a class="download" href="#" data-cnt="0" data-href="...." class oncontextmenu="return false"><span class="count">Click 3 times</span> <svg ... </svg></a>
</section>
推荐阅读
- python - Discord.py 使用 for 循环将多个值添加到单个嵌入字段
- reactjs - 如何在 React 组件中使用 Redux `connect`?
- cordova - 框架 v2 路由器不适用于 iOS 14
- cytoscape.js - 如何让 cytoscape.js 更均匀地填充画布?
- javascript - Mapbox js方向,如何设置原点来跟踪用户位置
- r - 在 R 中的代码块中有一个空行的意外输入(在 VS Code 中使用 Jupyter Notebook)
- python - 需要将 Lasagne 转换为 Keras 代码 (CNNLSTM)
- specflow - 类级别的 SpecFlow+ Runner 并行化
- python - 股票市场计算费用
- javascript - 如何在谷歌浏览器调试器的地图文件中找到相应的javascript代码