第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery/JS 點擊時停止循環(huán) setTimeout

jQuery/JS 點擊時停止循環(huán) setTimeout

慕田峪7331174 2023-07-29 15:47:56
我有一張地圖,上面有多個城市。我還有一個循環(huán)顯示每個城市的詳細(xì)信息。一旦我點擊其中一個城市,我想完全停止循環(huán)。我嘗試過:clearTimeout(loopIdx) 但它不起作用。請你幫助我好嗎?!干杯。環(huán)形:$(function() { var $mapCol = $('.map-col'); var $mapBtn = $('.map-btn'); var $mapLoops = $('.map-loop'); var $btnLoops = $('.btn-loop'); loopIdx = (function _loop(idx) {    $mapCol.removeClass('active-map');    $mapBtn.removeClass('active-btn');    $mapLoops.removeClass('active-map').eq(idx).addClass('active-map');    $btnLoops.removeClass('active-btn').eq(idx).addClass('active-btn');    setTimeout(function() {     _loop((idx + 1) % $mapLoops.length);        }, 6000);     }(0));});BTN:<div class="btn-loop">City</div>
查看完整描述

2 回答

?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊

將 的結(jié)果分配setInterval()給變量,并在clearTimeout()調(diào)用中使用它。


$(function() {

  var $mapCol = $('.map-col');

  var $mapBtn = $('.map-btn');

  var $mapLoops = $('.map-loop');

  var $btnLoops = $('.btn-loop');

  var timer;

  loopIdx = (function _loop(idx) {

    $mapCol.removeClass('active-map');

    $mapBtn.removeClass('active-btn');

    $mapLoops.removeClass('active-map').eq(idx).addClass('active-map');

    $btnLoops.removeClass('active-btn').eq(idx).addClass('active-btn');


    timer = setTimeout(function() {

      _loop((idx + 1) % $mapLoops.length);

    }, 2000);

  }(0));

  $btnLoops.click(function() {

    clearTimeout(timer);

  });

});

.map-loop.active-map {

  background-color: yellow;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="btn-loop">City</div>

<div class="map-loop">1</div>

<div class="map-loop">2</div>

<div class="map-loop">3</div>

<div class="map-loop">4</div>

<div class="map-loop">5</div>

<div class="map-loop">6</div>

<div class="map-loop">7</div>


查看完整回答
反對 回復(fù) 2023-07-29
?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗 獲得超5個贊

您需要通過名稱或標(biāo)識符訪問 timeoutID 來清除它。(請參閱https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout。)


如果你想loopIdx成為標(biāo)識符,你可以使用類似的東西:


let needToClear = false;

let loopIdx = setTimeout(function(){}, 6000);

// ...state changes here...

if(needToClear){ clearTimeout(loopIdx); }


查看完整回答
反對 回復(fù) 2023-07-29
  • 2 回答
  • 0 關(guān)注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號