javascript - 在 jquery 中单击 1 次但多次提醒
问题描述
我在下面运行代码,单击打开5 次并单击关闭4 次,然后单击警报。我希望警报功能运行 1 次,但它运行 5 次,为什么?,如何预防这个问题?
代码包含 3 个按钮,通过单击打开,显示两个按钮,包括关闭和警报按钮,通过单击关闭隐藏警报和关闭按钮,通过单击警报,警报 1。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".close-but").css("display","none");
$(".alert").css("display","none");
$(".open-but").click(function(){
$(".alert").click(function(){
alert("1");
});
$(".open-but").css("display","none");
$(".close-but").css("display","flex");
$(".alert").css("display","flex");
});
$(".close-but").click(function(){
$(".close-but").css("display","none");
$(".alert").css("display","none");
$(".open-but").css("display","flex");
});
});
</script>
</head>
<body>
<button class="open-but">open</button>
<button class="close-but">close</button>
<br/>
<button class="alert">alert</button>
</body>
</html>
解决方案
你放错$(".alert").click()
了每次你点击它都会为按钮.open-but
分配一个事件处理程序。alert
您应该只分配$(".alert").click()
一次。所以把它放在$(".open-but").click()
下面:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(".close-but").css("display", "none");
$(".alert").css("display", "none");
$(".open-but").click(function() {
$(".open-but").css("display", "none");
$(".close-but").css("display", "flex");
$(".alert").css("display", "flex");
});
$(".close-but").click(function() {
$(".close-but").css("display", "none");
$(".alert").css("display", "none");
$(".open-but").css("display", "flex");
});
$(".alert").click(function() {
alert("1");
});
});
</script>
</head>
<body>
<button class="open-but">open</button>
<button class="close-but">close</button>
<br />
<button class="alert">alert</button>
</body>
</html>
推荐阅读
- android - 如何在 android 应用程序中设置多个字体大小默认值?
- android - 处理后如何捕获 RxJava SubScription 流的错误?
- pytorch - 将pytprch转换为onnx时如何为Aten操作员torch.mv做些什么
- azure - 推荐的 Azure 服务来替换 Azure 功能
- javascript - 提交搜索键输入迭代
- python - 如何从搜索栏中获取用户输入以显示在页面中?姜戈
- ios - Firebase Cloud Messaging (FCM) 如何切换 Apple Push Notification service (APNs) 的环境?
- javascript - 如何解构或优化打字稿代码?
- database - 这个 ER 模型有什么问题?
- r - 需要将图例更改为十进制值