У вас есть if
не в том месте.Вы хотите, чтобы он находился внутри обработчика щелчка (кода, который запускается при нажатии), а не за его пределами.Вам также необходимо удалить var
из var click_count = 1;
, чтобы вы использовали тот, который объявлен в обратном вызове ready
, а не тот, который объявлен в обработчике click
:
$(document).ready(function() {
var click_count = 0;
$('body').on("click", function() {
if (click_count == 0) {
alert("Hi there");
click_count = 1;
}
});
});
Testing 1 2 3
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
(Вот работоспособная версия для мобильных телефонов, где стековые фрагменты не отображаются: http://output.jsbin.com/taropelopu)
Но ,Вместо того, чтобы использовать click_count
, я бы предложил удалить обработчик событий после первого щелчка. Это можно сделать с помощью off
, но в jQuery даже есть функция, специально предназначенная для добавления обработчика, который вы удаляете первымвремя его вызова: one
(вместо on
):
$(document).ready(function() {
$('body').one("click", function() {
alert("Hi there");
});
});
Testing 1 2 3
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
(Запускаемая версия для устройств, где фрагменты стека не отображаются: http://output.jsbin.com/wivoroluzu)