如何使Javascript / jQuery按间隔自动单击一个按钮

时间:2013-11-19 09:24:28

标签: javascript jquery automation setinterval

我希望这个按钮在按下一次后每秒按一次无限量的时间。

这是我的代码示例,它不起作用,我无法弄清楚为什么因为我还是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>

感谢您的时间。

2 个答案:

答案 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。希望这有助于优化您的代码性能:)