亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

jquery 如何添加class 幾秒移除再移除這個class?

jquery 如何添加class 幾秒移除再移除這個class?

慕虎7371278 2018-07-22 11:20:08
小菜鳥的問題我想手機端設置點擊屏幕喚醒菜單按鈕,幾秒后這個菜單自動隱藏,我目前想到的是使用setTimeout(),在body綁定click點擊事件,然后在這個click函數內使用.addClass()給元素天機指定class,幾秒后消失就再添加setTimeout()來移除,這么一來會有個問題,就是這個setTimeout()執行會積累,也就是click觸發。幾次,setTimeout()就會執行幾次,也就是多次移除class。如何在setTimeout()設定的時間內多次click也只執行一次呢? $('body').on('click',function(){     $('body').addClass('touchmove');     setTimeout(function(){           $('body').removeClass('touchmove');      },5000);        });
查看完整描述

2 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

為了達到讓click處理函數沒有結束前再次觸發無效,可以使用 jQuery的 one方法,即只讓click一次有效。 在處理函數結束時,再給body綁定一個一次有效的處理函數。

function clickHandler(){
    $('body').addClass('touchmove');
    setTimeout(function(){
          $('body').removeClass('touchmove');
          $('body').one('click', clickHandler);
     }, 5000);
}

$('body').one('click', clickHandler);


查看完整回答
反對 回復 2018-07-29
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

var timer;
$('body').on('click',function(){

clearTimeout(timer);timer = setTimeout( function(){
    $('body').addClass('touchmove');
    setTimeout(function(){
          $('body').removeClass('touchmove');
     },5000);} , 200 );

});


查看完整回答
反對 回復 2018-07-29
  • 2 回答
  • 0 關注
  • 1925 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號