我希望这个按钮在按下一次后每秒按一次无限量的时间。
这是我的代码示例,它不起作用,我无法弄清楚为什么因为我还是Javascript和jQuery的新手。
<?php
session_start();
if(isset($_POST['attack'])) {
$_SESSION['hero_experience'] = $_SESSION['hero_experience']+1;
}
print_r($_SESSION['hero_experience']);
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#attack").click(function(){
setInterval(function(){document.getElementById("#attack").click();},1000);
});
});
</script>
<form action="#" method="POST">
<input id="attack" type="submit" name="attack" value="attack">
</form>
感谢您的时间。
答案 0 :(得分:4)
您不应在#
中使用带有ID的document.getElementById
,因为getElementById会将#
的元素的id带入。您必须使用jQuery选择器#
。
<强> Live Demo 强>
更改
document.getElementById("#attack").click();
到
document.getElementById("attack").click();
OR
$("#attack").click();
OR
$("#attack").trigger("click");
将代码更改为
setInterval(function () {
document.getElementById("attack").click();
}, 5000);
$("#attack").click(function () {
alert("clicked");
});
答案 1 :(得分:1)
持有计时器对象总是好的.. 此外,由于您使用的是jquery,因此您可以使用它来唤起点击事件
<script>
var myTimerObj = null;
$(document).ready(function(){
$("#attack").click(function(){
myTimerObj = setInterval(function(){
$("#attack").click();
},1000);
});
});
function myStopFunction()
{
clearInterval(myTimerObj);
}
</script>
当你想要停止计时器时,你可以调用myStopFunction。希望这有助于优化您的代码性能:)