2016-04-22 69 views
0

代碼返回true或false:如何當我代碼window.confirm自己

(function (proxied) { 
    window.confirm = function (msg) { 
     noty({ 
      text: '<i class="fa fa-exclamation-triangle">'+msg+'</i>', 
      theme: 'relax', 
      dismissQueue: true, 
      layout: 'center', 
      buttons: [ 
       { 
        addClass: 'btn btn-success btn-circle', text: '<i class="fa fa-check"></i>', onClick: function ($noty) { 
         $noty.close(); 
         return true; 
        } 
       }, 
       { 
        addClass: 'btn btn-danger btn-circle', text: '<i class="fa fa-times"></i>', onClick: function ($noty) { 
         $noty.close(); 
         return false; 
        } 
       } 
      ] 
     }); 
     //return proxied.apply(this, arguments); 
    }; 
})(window.confirm); 

它不能正確的返回真或假,我想這可能是按鈕關閉謝謝大家。

+0

什麼是'noty({})'?是一個定義的函數嗎? – evolutionxbox

+0

你確定函數被調用嗎? –

+0

noty - jQuery Notification Plugin –

回答

1

只有本機對話框功能可以暫停JavaScript執行,直到採取了一些行動,這意味着您將無法返回任何內容。你將不得不使用回調:

(function (proxied) { 
    window.confirm = function (msg, callback) { 
     noty({ 
      text: '<i class="fa fa-exclamation-triangle">'+msg+'</i>', 
      theme: 'relax', 
      dismissQueue: true, 
      layout: 'center', 
      buttons: [ 
       { 
        addClass: 'btn btn-success btn-circle', text: '<i class="fa fa-check"></i>', onClick: function ($noty) { 
         $noty.close(); 
         callback(true); 
        } 
       }, 
       { 
        addClass: 'btn btn-danger btn-circle', text: '<i class="fa fa-times"></i>', onClick: function ($noty) { 
         $noty.close(); 
         callback(false); 
        } 
       } 
      ] 
     }); 
     //return proxied.apply(this, arguments); 
    }; 
})(window.confirm); 

要使用的功能,你便要做到這一點:

window.confirm("Do you want ice cream?", function(result){ 
    if(result){ 
     // The user wants ice cream 
    } 
}); 
+0

感謝您的回答 –

相關問題