按钮上的点击功能执行多次

时间:2019-04-24 11:00:24

标签: javascript php html

在while循环内部执行整个用户详细信息,当我单击按钮时,用户ID传递到while循环外部的函数。问题是,当我单击按钮时,该值应该每10或5秒传递一次,但是在下面的代码中,当我第一次单击它执行完美时,但是在我单击第二次或第三次单击时,将其值分别设置为第一次,第二次执行,第三等等,如果我犯了任何错误,请纠正我,否则有任何逻辑?

<?php
include("database/connect.php");

$q = mysqli_query($con, "select * from tbl_user");
while ($f = mysqli_fetch_array($q)) { ?>
    <input type="button" name="ch" value="<?= $f['id'] ?>" onclick="fcc(<?= $f['id']?>)"/><br>
<?php } ?>

<script>
function fcc(cc) {
   setInterval(function() {
       alert(cc);
   }, 3000);

}
</script>

2 个答案:

答案 0 :(得分:4)

将间隔计时器分配给全局变量,并在启动新计时器时停止旧计时器。

0

答案 1 :(得分:1)

您应该在开始新间隔之前清除间隔

ES6:

{
  let interval;
  function fcc(cc) {
    clearInterval(interval);
    interval = setInterval(fcc.callback.bind({}, [cc]), 1000);
  }
  window.fcc = fcc;
}

fcc.callback = function myAlert(m) {
  console.log(m)
}
<input type="button" name="ch" value="a" onclick="fcc('a')" /><br>
<input type="button" name="ch" value="b" onclick="fcc('b')" /><br>
<input type="button" name="ch" value="c" onclick="fcc('c')" /><br>

或使用ES5

function _fcc() {
  var interval;
  
  return function (m) {
    clearInterval(interval)
    interval = setInterval(fcc.callback.bind({}, [m]), 1000);
  }
}
fcc = _fcc();

fcc.callback = function myAlert(m) {
  console.log(m)
}
<input type="button" name="ch" value="a" onclick="fcc('a')" /><br>
<input type="button" name="ch" value="b" onclick="fcc('b')" /><br>
<input type="button" name="ch" value="c" onclick="fcc('c')" /><br>