对,我想要发生的是,当按下一个按钮(或者在本例中是某个文本)时,Jquery显示包含图像的div标记,在2秒后淡出图像,然后显示一些文本。
这一切都很好,但我只想让它工作一次。
我决定通过使用变量和if语句来实现这一点,因此变量从0更改为1,然后由于变量被更改,不能再次单击按钮。
或者至少,这是用词不当的版本。
无论如何,这是我到目前为止的情况,但由于某种原因,在单击按钮后,变量不会从0更改为1,除此之外,它工作得很好。
联合来文:
$(document).ready(function(){
$("#text2").css("display","none");
$("#ltt").css("display","none");
var clicked = '0';
if(clicked == 0) {
$(".clicker").click(function() {
$("#ltt").fadeIn("slow");
$('#ltt').delay(2000).fadeOut('slow');
$("#text2").delay(3000).fadeIn(1000);
$clicked = '1';
});
}
});
HTML:
<div class="clicker">
click to see text
</div>
<div id="ltt">
<img src="Images/LoadingCircle.gif" width="24" height="24">
</div>
<div id="text2">
SOME TEXT
</div>
发布于 2014-05-12 04:15:23
尝试在此上下文中使用.one()
,
$(".clicker").one('click', function() {
$("#ltt").fadeIn("slow");
$('#ltt').delay(2000).fadeOut('slow');
$("#text2").delay(3000).fadeIn(1000);
});
发布于 2014-05-12 04:15:48
您应该使用.one()来代替:
将处理程序附加到元素的事件。每个事件类型的每个元素最多只执行一次处理程序。
$(".clicker").one('click',function() {
$("#ltt").fadeIn("slow");
$('#ltt').delay(2000).fadeOut('slow');
$("#text2").delay(3000).fadeIn(1000);
$clicked = '1';
});
发布于 2014-05-12 04:16:54
将变量声明为
var clicked = '0';
但呼唤
$clicked = '1';
稍后,您的变量将不会被找到。
除了PHP之外,您不需要美元$来声明变量,它只是一个简单的错误:)
https://stackoverflow.com/questions/23608759
复制