Я создаю проект для класса, в котором мне нужно использовать jquery. Я остановился на проекте, в котором вы нажмете кнопку, счетчик увеличится на единицу и запустится таймер. Это будет похоже на игру, чтобы увидеть, как быстро вы можете щелкнуть за 10 секунд.
$("#button").mousedown(function () {
score = score + 1;
startTimer();
});
function startTimer() {
if (stop === 0) {
stop = stop + 1;
var counter = 0;
var interval = setInterval(function () {
counter++;
display = 60 - counter;
$("#button").html("Click! (" + display + " secs)");
if (counter == 60) {
alert("Times up!");
clearInterval(interval);
stop = 0;
endscore = score;
score = 0;
}
}, 1000);
}
};
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "clicks">
<p><span>0</span></p>
</div>
<div class = "boxtext">
<p>Time Remaining: <span>10</span> Seconds </p>
</div>
<div class = "but">
<button type = "button" name = "button">Click</button>
</div>
Я ожидал, что таймер запустится, а счетчик увеличится на единицу, но ничего не происходит.
И вместо mousedown
используйте on()
(JQuery несколько лет назад отказался от ярлыков событий) и событие click
. Я искренне надеюсь, что ваш учитель не учил вас этому.
Если это ваш весь код, то score
не определен. Объявите его в глобальной области видимости, иначе произойдет ошибка.
Вы используете в качестве селектора идентификатор, однако ваш элемент кнопки не имеет этого идентификатора. Вы можете сделать следующее:
$(".but").mousedown(function() { // or $('button[name = "button"]').mousedown(function() {...});
score = score + 1;
startTimer();
});
Я думаю, что это не единственная проблема. Потому что код все еще не работает.
@MaheerAli от ОП: Я ожидал, что таймер запустится, а счетчик увеличится на единицу но вообще ничего не происходит. Теперь ОП должен начать работать над своим подходом.
Из вашего html у вас не было id = "button"
, поэтому используйте селектор имени или назначьте идентификатор кнопке.
Как показано ниже.
$("input[name='button']").mousedown(function() {
score = score + 1;
startTimer();
});
Вы забыли инициализировать некоторые переменные и указать некоторые идентификаторы.
var score = 0
var stop = 0
$("#button").click(function () {
score = score + 1;
startTimer();
});
function startTimer() {
console.info('start timer')
if (stop === 0) {
stop = stop + 1;
var counter = 0;
var interval = setInterval(function () {
console.info('#interval')
counter++;
display = 60 - counter;
$("#button").html("Click! (" + display + " secs)");
if (counter == 60) {
alert("Times up!");
clearInterval(interval);
stop = 0;
endscore = score;
score = 0;
}
$('#counter').html(counter)
}, 1000);
}
};
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "clicks">
<p><span id = "counter">0</span></p>
</div>
<div class = "boxtext">
<p>Time Remaining: <span>10</span> Seconds </p>
</div>
</div>
<div class = "but">
<button type = "button" id = "button">Click</button>
</div>
Скрипка не нужна.
Тебе следует:
Добавьте идентификатор к вашей кнопке:
<button id = "button" type = "button" name = "button">Click</button>
Также вам необходимо определить переменные score
и stop
глобально вне функции:
var score = 0;
var stop = 0;
<!DOCTYPE html>
<html>
<head>
<script
src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
var score=0;
var stop=0;
var counter = 0;
var endscore=0;
$("button").mousedown(function () {
score = score + 1;
$("#score").text(score);
startTimer();
});
function startTimer() {
if (stop === 0) {
stop = stop + 1;
var interval = setInterval(function () {
counter++;
display = 60 - counter;
// $("button").html("Click! (" + display + " secs)");
if (counter == 60) {
alert("Times up!");
clearInterval(interval);
stop = 0;
endscore = score;
score = 0;
}
$('#timeRemaining').text(display);
}, 1000);
}
};
});
</script>
</head>
<body>
<div class = "clicks">
<p><span id = "score">0</span></p>
</div>
<div class = "boxtext">
<p>Time Remaining: <span id = "timeRemaining">60</span> Seconds </p>
</div>
<div class = "but">
<button type = "button" name = "button">Click</button>
</div>
</body>
</html>
Нет элемента с id = "button", который ищет
$("#button")
.