JS中的多个setimeout

时间:2019-01-25 01:23:18

标签: javascript

我想在延迟一段时间后进行两次活动。首先是单击一个隐藏的按钮,然后重定向页面。我尝试了每个,它正常工作。但是当我将它们组合在一起时,它就不再起作用了。

<a href="<?php echo $model->link; ?>">
  <button id="button" style="width:0px; height:0px;" class="btn btn-success"></button>
</a>

window.setTimeout(function() {

    document.getElementById("button").click();

}, 3000);

window.setTimeout(function() {

    window.location = "<?php echo Url::to(['index', 'id' => $model->cate_id]); ?>";

}, 3000);

我试图这样写

window.setTimeout(function() {

    document.getElementById("button").click();
    window.location = "<?php echo Url::to(['index', 'id' => $model->cate_id]); ?>";

}, 3000);

但是它仍然只是重定向页面,而不是单击按钮。

请帮助我,谢谢

1 个答案:

答案 0 :(得分:0)

如果我正确理解按钮,则用户无法单击该按钮,因为您是手动触发click事件的。因此,请尝试这种方式:

    <a href="<?php echo $model->link; ?>">
      <button id="button" style="width:0px; height:0px;" class="btn btn-success" onclick="redirect()"></button>
    </a>

    window.setTimeout(function() {

        document.getElementById("button").click();

    }, 3000);

    function redirect() {
         window.location = "<?php echo Url::to(['index', 'id' => $model->cate_id]); ?>";
    }

将onclick事件附加到按钮以触发页面重定向。