[英]How to call a function on button click in jQuery
I have written a code in jQuery:我用jQuery写了一段代码:
<span id="counter-up" class="timer">
</span>
<div class="buttons">
<button id="trigger">Result!</button>
</div>
</div>
<div class="container">
</div>
<script>
var Numbers = 30;
function secondPassed() {
var random = Math.random() * 2024 + 10;
random = parseInt(random);
document.getElementById('counter-up').innerHTML = random;
if (Numbers == 0) {
clearInterval(countdownTimer);
document.getElementById('counter-up').innerHTML = "2024";
} else {
Numbers--;
}
}
var countdownTimer = setInterval('secondPassed()', 100);
</script>
In this code the function secondPassed
is called as I load the page.在这段代码中,当我加载页面时调用了函数secondPassed
。 I want that this function should be called when I click on button with Id trigger
.我希望当我点击带有 Id trigger
按钮时应该调用这个函数。 How can I achieve this?我怎样才能做到这一点?
Bind event on the element and pass the handler as the function reference在元素上绑定事件并将处理程序作为函数引用传递
$('#trigger').click(secondPassed);
I'd also recommend to use non-string callback to setInterval function.我还建议使用非字符串回调来 setInterval 函数。
var countdownTimer = setInterval(secondPassed, 100);
setInterval
use function reference.不要使用函数的字符串版本作为回调来setInterval
使用函数引用。Live Demo现场演示
var Numbers = 30, countdownTimer; var $counter = $('#counter-up'); function secondPassed() { var random = parseInt(Math.random() * 2024 + 10, 10); $counter.html(random); if (Numbers == 0) { clearInterval(countdownTimer); $counter.innerHTML = "2024"; } else { Numbers--; } } countdownTimer = setInterval(secondPassed, 100); $('#trigger').click(function() { Numbers = 30; countdownTimer = setInterval(secondPassed, 100); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <span id="counter-up" class="timer"> </span> <div class="buttons"> <button id="trigger">Result!</button> </div> <div class="container"> </div>
try to do this:尝试这样做:
$(document).ready(function(){
secondPassed();//after document ready
$('#trigger').on('click',function(){
secondPassed();//onclick of button
});
});
<script>
D = document
$(D).ready(function() {
$("#trigger").click(function() {
var Numbers = 30;
var random = Math.random() * 2024 + 10;
random = parseInt(random);
document.getElementById('counter-up').innerHTML = random;
if (Numbers == 0) {
clearInterval(countdownTimer);
document.getElementById('counter-up').innerHTML = "2024";
} else {
Numbers--;
}
});
});
</script>
I hope it works but all the answer are near that I think :D我希望它有效,但我认为所有答案都接近:D
try this尝试这个
<script>
$(function() {
$('#trigger').on('click', function() {
secondPassed();
});
});
var Numbers = 30;
function secondPassed() {
var random = Math.random() * 2024 + 10;
random = parseInt(random);
document.getElementById('counter-up').innerHTML = random;
if (Numbers == 0) {
clearInterval(countdownTimer);
document.getElementById('counter-up').innerHTML = "2024";
} else {
Numbers--;
}
}
var countdownTimer = setInterval(secondPassed(), 100);
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.