溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

js延時(shí)操作setTimeout和setInterval

發(fā)布時(shí)間:2020-08-20 09:50:32 來源:網(wǎng)絡(luò) 閱讀:425 作者:pannijingling 欄目:web開發(fā)
1.setTimeout

說明:
  有兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼字符串,還有一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過了那個(gè)時(shí)間段之后就將執(zhí)行那段代碼.且只執(zhí)行一次

/*按鈕禁用10秒*/
setTimeout(disabledSubmitButton("bt01"), 1000*10);

function disabledSubmitButton(submitButtonName) {
        $("#"+submitButtonName).removeAttr("disabled");//將按鈕可用
}
2.setInterval

說明:
  有兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼字符串,還有一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過了那個(gè)時(shí)間段之后就將執(zhí)行那段代碼.會(huì)重復(fù)執(zhí)行;可應(yīng)用于倒計(jì)時(shí).

// 每10獲取一次時(shí)間
setInterval("showTime()" , 1000*10 );
function showTime(){
    // js獲取日期時(shí)間
    var newDate = getDateTime();
    alert("當(dāng)前日期時(shí)間是:" + newDate);
}

// js獲取日期時(shí)間
function getDateTime(){
    var dateObj = new Date(); //表示當(dāng)前系統(tǒng)時(shí)間的Date對象
    var year = dateObj.getFullYear(); //當(dāng)前系統(tǒng)時(shí)間的完整年份值
    var month = dateObj.getMonth()+1; //當(dāng)前系統(tǒng)時(shí)間的月份值
    var date = dateObj.getDate(); //當(dāng)前系統(tǒng)時(shí)間的月份中的日
    var day = dateObj.getDay(); //當(dāng)前系統(tǒng)時(shí)間中的星期值
    var weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
    var week = weeks[day]; //根據(jù)星期值,從數(shù)組中獲取對應(yīng)的星期字符串
    var hour = dateObj.getHours(); //當(dāng)前系統(tǒng)時(shí)間的小時(shí)值
    var minute = dateObj.getMinutes(); //當(dāng)前系統(tǒng)時(shí)間的分鐘值
    var second = dateObj.getSeconds(); //當(dāng)前系統(tǒng)時(shí)間的秒鐘值
    var timeValue = "" +((hour >= 12) ? (hour >= 18) ? "晚上" : "下午" : "上午" ); //當(dāng)前時(shí)間屬于上午、晚上還是下午

    return dateFilter(year)+"年"+dateFilter(month)+"月"+dateFilter(date)+"日 "+" "+dateFilter(hour)+":"+dateFilter(minute)+":"+dateFilter(second) + " " + week;
}

效果:
js延時(shí)操作setTimeout和setInterval

3.清除

  如果對計(jì)時(shí)函數(shù)不加以處理,那么setInterval將會(huì)持續(xù)執(zhí)行相同的代碼,一直到瀏覽器窗口關(guān)閉,或者用戶轉(zhuǎn)到了另外一個(gè)頁面為止.不過還是有辦法可以終止setTimeout和setInterval函數(shù)的執(zhí)行.當(dāng)setInterval調(diào)用執(zhí)行完畢時(shí),它將返回一個(gè)timer ID,將來便可以利用該值對計(jì)時(shí)器進(jìn)行訪問,如果將該ID傳遞給clearInterval,便可以終止那段被調(diào)用的過程代碼的執(zhí)行了,具體實(shí)現(xiàn)如下:

var obj01 = setTimeout(disabledSubmitButton("bt01"), 1000*10);
<!-- 清除已設(shè)置的setTimeout對象 -->
clearTimeout(obj01)

var obj02 = setInterval("showTime()" , 1000*10 );
<!-- 清除已設(shè)置的setInterval對象 -->
clearInterval(obj02);
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI