2017-03-09 91 views
-1

我爲下拉使用jQuery觸發更改事件,如何禁用特定功能的window.alert並重新啓用它?

var year = jQuery("#cq-year option:eq(2)").val(); 
jQuery("#cq-year").val(year).trigger('change'); 

但在警報其示值誤差「缺少必需的參數GetModels。」 我已禁用jQuery(window).load警報,但我只是想禁用這些特定警報的警報。

window.alert = function() { }; 

所以我怎樣才能重新啓用這個功能呢?

回答

1

window.alert函數保存在臨時變量中,並在完成後重新指派它。

var temp = window.alert; 
 
window.alert = function() { }; 
 
alert('this is not shown'); 
 
window.alert = temp; 
 
alert('this is shown');

+0

好非常感謝它現在的工作, 感謝你的幫助。 –

0

這個怎麼解決呢?

// Flag for alert 
var canAlert = false; 

// Backup the alert method 
var alertBackup = window.alert 

// Over ride alert method 
window.alert = function(msg){ 
    // Check if flag is enabled before alerting 
    if(canAlert){ 
     alertBackup(msg) 
    } 
} 

canAlert = true當過你想要的警戒工作

+0

感謝幫助男人..現在工作..! –

0

可以使用效用函數callNoAlert爲:

function callNoAlert (fn) { 
 
    var a = alert 
 
    window.alert = Function.prototype 
 
    fn() 
 
    window.alert = a 
 
} 
 

 
callNoAlert(function() { 
 
    alert("ANNOYING ALERT!") // does not run! 
 
    console.log("alert() didn't run!") 
 
}) 
 

 
callNoAlert(function() { 
 
    var year = jQuery("#cq-year option:eq(2)").val(); 
 
    jQuery("#cq-year").val(year).trigger('change'); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

相關問題