Javascript - 单击按钮时,CSS 属性会在第二次单击后切换
Javascript - When a button is clicked the CSS property toggle after second click
我正在使用Javascript编写一个简单的播放和暂停按钮代码。脚本正在切换 CSS 属性;然而,在延迟之后。目前,切换发生在第二次单击时。不确定问题是什么。
$(document).click(function () {
$("#startClock").click(function () {
$("#startClock").css("display", "none");
$("#stopClock").css("display", "block");
});
$("#stopClock").click(function () {
$("#stopClock").css("display", "none");
$("#startClock").css("display", "block");
});
});
#stopClock {
display: none;
}
#startClock {
display: block;
}
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js?ver=4.1'></script>
<button id=startClock >Start</button>
<button id=stopClock >Pause</button> <br/>
与其选择$(document).click
$(document).ready
$(document).ready(function () {
$("#startClock").click(function () {
$("#startClock").css("display", "none");
$("#stopClock").css("display", "block");
});
$("#stopClock").click(function () {
$("#stopClock").css("display", "none");
$("#startClock").css("display", "block");
});
});
#stopClock {
display: none;
}
#startClock {
display: block;
}
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js?ver=4.1'></script>
<button id=startClock >Start</button>
<button id=stopClock >Pause</button> <br/>
发生这种情况是因为在第一个click
被document
监听;click
事件处理程序附加到您的button
。因此需要 2 次点击才能使用 CSS 动画。
$(document).ready(function() {
$("#startClock").click(function() {
$("#startClock").css("display", "none");
$("#stopClock").css("display", "block");
});
$("#stopClock").click(function() {
$("#stopClock").css("display", "none");
$("#startClock").css("display", "block");
});
});
#stopClock {
display: none;
}
#startClock {
display: block;
}
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js?ver=4.1'></script>
<button id=startClock >Start</button>
<button id=stopClock >Pause</button> <br/>
因为起初您第一次单击它两次,导致单击事件内部的单击。您单击了文档,然后单击按钮。
如果你改变怎么办
$(document).click(function() {
自
$(document).ready(function() {
我看不到上下文,但看起来您有两个嵌套的单击侦听器。
问题是您已将代码包装在$(document).click
$(document).ready()
样本
$(document).ready(function() {
$("#startClock").click(function() {
$("#startClock").css("display", "none");
$("#stopClock").css("display", "block");
});
$("#stopClock").click(function() {
$("#stopClock").css("display", "none");
$("#startClock").css("display", "block");
});
});
#stopClock {
display: none;
}
#startClock {
display: block;
}
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js?ver=4.1'></script>
<button id=startClock>Start</button>
<button id=stopClock>Pause</button>
<br/>
应避免使用样式属性。相反,您应该使用class
。如果切换到class
方法,则可以使用、toggleClass
或addClass/removeClass
函数来更新可见性。
样本
$(document).ready(function() {
$("#startClock, #stopClock").click(function() {
$("#startClock").toggleClass("hide");
$("#stopClock").toggleClass("hide");
});
});
.hide{
display:none
}
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js?ver=4.1'></script>
<button id="startClock">Start</button>
<button id="stopClock" class="hide">Pause</button>
<br/>
试试这个,
使用preventDefault
你可以做到。
$(document).ready(function () {
$("#startClock").click(function (e) {
e.preventDefault();
$("#startClock").css("display", "none");
$("#stopClock").css("display", "block");
});
$("#stopClock").click(function (e) {
e.preventDefault();
$("#stopClock").css("display", "none");
$("#startClock").css("display", "block");
});
});
相关文章:
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 单击一次后禁用按钮-第2部分
- 如何对每个用户每天只允许单击一次的按钮进行编码
- button.单击两次删除附加操作后不工作
- 为什么jQuery下拉列表需要单击两次
- 单击3次后禁用按钮
- 为每个字母单击一次
- Rails-jQuery 为什么我必须单击两次才能显示 jQuery 效果
- 对同一类中的所有元素单击一次
- 单击一次以静音,另一次单击可取消静音
- 必须单击两次才能得到一个响应
- 如何在幻灯片中添加向上滚动功能单击1次即可向下滚动
- 如何加载一个html页面并在其中只需单击一次即可运行函数
- isHidden函数要求我在应用响应显示时单击两次
- 元素必须单击两次才能添加Class(自定义指令)
- 只需单击一次按钮,jquery即可自动淡入/淡出文本
- ajax表单在第二次提交时提交了两次,在第三次提交时又提交了三次,等等
- 单击第二次轮次单击
- 单击按钮后,附加表单,第二次单击时向下滑动并向上滑动
- 首先显示一个Div,然后在表单中第二次单击按钮时提交