Jquery изменение переменной по клику



Верно, я бы хотел, чтобы при нажатии кнопки (или в данном случае какого-то текста) 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>
843   4  

4 ответов:

Попробуйте использовать .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;
            }
        });
});

Comments

    Ничего не найдено.