javascript - 如何限制一次单击新的 textContent 按钮?
问题描述
目前,单击按钮和淡出可以多次单击。
我希望用户只能单击一次以获取新的文本按钮。因为多次单击会导致我的代码出现错误。
我尝试使用.one()
,但是当新的文本按钮淡入淡出点击不起作用 - 因为按钮是同一个对象,只有textContent
改变了。
如何限制按钮上的每个新textContent
按钮单击一次?
let clickNumber = 0;
$("button").click(function() {
$(this).fadeOut(3000, function() {
$(this).fadeIn().text("B")
})
$("p").text(clickNumber++)
})
/*$("button").one("click", function() {
$(this).fadeOut(3000, function() {
$(this).fadeIn().text("B")
})
$("p").text(clickNumber++)
})*/
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<div class="box">
<button id="option1">A</button>
<p></p>
</div>
</div>
解决方案
所以添加一个布尔值并检查它是否处于活动状态
let clickNumber = 0;
$("button").click(function() {
const btn = $(this);
if (btn.data('active')) return;
btn.data('active', true);
$(this).fadeOut(3000, function() {
$(this).fadeIn().text("B")
// btn.data('active', false); If you want them to click it again
})
$("p").text(clickNumber++)
})
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<div class="box">
<button id="option1">A</button>
<p></p>
</div>
</div>
推荐阅读
- javascript - 如何在不重新加载页面的情况下使用经度和纬度坐标动态更改谷歌地图上的位置点
- git - GIT:从两个分支创建文件的合并版本
- java - Http Response 仅包含输入 HttpServletResponse.getWriter 的第一个字符
- azure - 如何检查运行状态和停止 Durable 功能
- c - C:函数前的前缀__
- css - 如何使我的图像内嵌在组件内容的左侧?
- php - 在 MySQL 中使用 PDO::FETCH_ORI_ABS
- perl - 使用 MOJO::DOM 查找具有特定 id 模式的 div 下的内容
- php - 如何修复致命错误:未捕获的 ArgumentCountError?
- javascript - 即使服务器正在为资产文件提供服务,也不会加载资产文件