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

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

使功能如確認

使功能如確認

RISEBY 2021-12-02 16:45:40
我正在嘗試模擬 javascript 的確認功能。但它不起作用。我在哪里犯了錯誤?function func(){    $('body').on('click', '.true', function() {        return true;    });    $('body').on('click', '.false', function() {        return false;    });}function test(){    var r = func();    if(r==false){        alert('false');        return false;    }    alert('it works');}
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

confirm 停止瀏覽器的代碼執行,直到單擊按鈕。這就是為什么confirm可以同步返回并表現得像一個普通函數。你不能從 JS 中停止瀏覽器的執行,所以這是完全不可能的(或者如果你這樣做了,用戶就不能輸入任何東西)。


但是,您可以創建并返回一個承諾(然后可以異步解析):


 function func(){

  return new Promise((resolve, reject) => {

    $('body').once('click', '.true', function() { // Only listen to *one* click instead of keeping this listener forever

        resolve(true); // resolve the promise if clicked

    });


   $('body').once('click', '.false', function() {

     resolve(false);

   });

  });

}

然后可以用作:


 async function test(){ // has to be async, so that the execution can be haltet

   var r = await func(); // halts till click


   if(!r) { // reads "if not r"

    alert('false');

  } else alert('it works');

}


test();


查看完整回答
反對 回復 2021-12-02
  • 1 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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