单击功能在按钮上执行多次

在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>


哆啦的时光机
浏览 141回答 2
2回答

蛊毒传说

将间隔计时器分配给全局变量,并在启动新计时器时停止旧计时器。var timer;function fcc(cc) {&nbsp; &nbsp; clearInterval(timer);&nbsp; &nbsp; timer = setInterval(function() {&nbsp; &nbsp; &nbsp; &nbsp; alert(cc);&nbsp; &nbsp; }, 3000);}

杨魅力

您应该在开始新间隔之前清除间隔ES6:{&nbsp; let interval;&nbsp; function fcc(cc) {&nbsp; &nbsp; clearInterval(interval);&nbsp; &nbsp; interval = setInterval(fcc.callback.bind({}, [cc]), 1000);&nbsp; }&nbsp; window.fcc = fcc;}fcc.callback = function myAlert(m) {&nbsp; 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>或搭配ES5function _fcc() {&nbsp; var interval;&nbsp;&nbsp;&nbsp; return function (m) {&nbsp; &nbsp; clearInterval(interval)&nbsp; &nbsp; interval = setInterval(fcc.callback.bind({}, [m]), 1000);&nbsp; }}fcc = _fcc();fcc.callback = function myAlert(m) {&nbsp; 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>
打开App,查看更多内容
随时随地看视频慕课网APP