【发布时间】:2013-12-13 23:51:56
【问题描述】:
我想让它在单击按钮时显示隐藏的 div 几秒钟并再次隐藏。这段代码完成了:
HTML:
<button class="clicky">click me</button>
<div class="flashy" style="display: none; width: 150px; font-size: 18px; margin-top: 25px;">
Now you see me!
</div>
JS:
jQuery(".clicky").on("click", function() {
flashDiv();
});
function flashDiv()
{
$(".flashy").slideToggle(100).effect("highlight", 300).delay(4000).slideToggle(100);
}
JSFIDDLE:http://jsfiddle.net/NRz34/1/
不过,有一点我很不喜欢:如果你快速连续多次点击按钮,效果会一遍遍重复(即它会向下滑动,显示几秒钟,向上滑动,然后重复单击按钮的次数)。
我的问题是,如何修改它,而不是一遍又一遍地上下滑动(无论它被点击了多少次),它在最后一次点击后只停留 4 秒?
示例:
多次点击时的当前行为:
- 点击点击点击
- 向下滑动
- 显示 4 秒
- 向上滑动
- 再重复两次
多次点击时的期望行为:
- 点击点击点击
- 向下滑动
- 显示 4 秒
- 向上滑动
注意:
我意识到我可以检查 DIV 是否可见,如果是则忽略按钮按下,但这并不是我想要的行为。你看,我希望 DIV 在最后一次按下按钮后保持可见 4 秒,所以如果按下按钮,然后在 2 秒后再次按下,按钮应该再保持可见 4 秒(总显示时间为 6 秒)。
【问题讨论】:
标签: javascript jquery html jquery-ui slidetoggle