Jquery在点击时改变变量

Jquery change variable on click

本文关键字:改变 变量 Jquery      更新时间:2023-09-26

对,我想发生的是,当一个按钮(或在这种情况下,一些文本)被按下,Jquery显示一个div标签,其中包含一个图像,淡出图像2秒后,然后显示一些文本。
这一切都工作得很好,但我只希望它工作一次。
我决定通过使用变量和if语句来做到这一点,因此变量从0变为1,然后由于变量被更改而无法再次单击按钮。
或者至少,这是措辞糟糕的版本。

无论如何,这就是我到目前为止所做的,但由于某种原因,变量不会在按钮被点击后从0变为1,除此之外,它工作得很好。

JS:

$(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>

尝试在此上下文中使用.one()

$(".clicker").one('click', function() { 
    $("#ltt").fadeIn("slow");
    $('#ltt').delay(2000).fadeOut('slow');
    $("#text2").delay(3000).fadeIn(1000);
});

您应该使用。():

为元素的事件附加一个处理程序。对于每个事件类型的每个元素,处理程序最多执行一次。

$(".clicker").one('click',function() { 
  $("#ltt").fadeIn("slow");
  $('#ltt').delay(2000).fadeOut('slow');
  $("#text2").delay(3000).fadeIn(1000);
  $clicked = '1';
});

您将变量声明为

var clicked = '0'; 

但是调用

$clicked = '1';

,所以你的变量不会被找到。

除了在PHP中,你不需要美元$来声明变量,它只是一个简单的拼写错误:)

这应该行得通:)

$(document).ready(function(){
    $("#text2").css("display","none");
    $("#ltt").css("display","none");
    window.clicked = false;
        $(".clicker").click(function() { 
            if(!window.clicked){
               $("#ltt").fadeIn("slow");
               $('#ltt').delay(2000).fadeOut('slow');
               $("#text2").delay(3000).fadeIn(1000);
               window.clicked = true;
            }
        });
});