为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
哆啦的时光机 2021-05-04 15:17:17
在while循环内部执行整个用户详细信息,当我单击按钮时,用户ID传递给while循环外部的函数。问题是当我单击按钮时,该值应该每10或5秒传递一次,但是在下面的代码中,当我第一次单击它执行完美时,但是在我单击第二或第三次时,对其值的执行是第一次,第二次,第三等,如果我犯了任何错误,请纠正我,否则进行任何逻辑处理??<?phpinclude("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 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

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


var timer;

function fcc(cc) {

    clearInterval(timer);

    timer = setInterval(function() {

        alert(cc);

    }, 3000);

}


查看完整回答
反对 回复 2021-05-14
?
杨魅力

TA贡献1811条经验 获得超6个赞

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


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>


查看完整回答
反对 回复 2021-05-14
  • 2 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信