[英]Best way to check a variable jQuery
我有一個腳本,該腳本檢查是否設置了變量或等於“ no”。 如果它等於no或未設置,它將var定義為'yes'。
這是我的代碼
if (typeof progress == 'undefined' || progress == 'no') {
document.getElementById('button-play').onclick = null;
var progress = 'yes';
然后調用一個函數,該函數將變量覆蓋為no。
function enableButton(){
var progress = 'no';
document.getElementById('button-play').onclick = play();
}
第一次執行腳本並沒有定義進度時,腳本可以工作,並且會將進度覆蓋為“ no”,但是當我嘗試使用定義為“ no”的var progress再次運行腳本時,它將不起作用。
我是否可以正確檢查進度值?
添加了jsfiddle: https ://jsfiddle.net/zxxubopq/
Javascript中的scope
是Global或Function 。 如果您在function
定義變量,則該變量僅在該function
作用域。
這不會覆蓋該變量,它是enableButton()
范圍內的enableButton()
局部progress
變量。 您應該修復您的范圍,它將起作用。
評論后編輯:
document.getElementById('button-play').onclick = play();
實際上是錯誤的,因為您要將函數分配給onclick
,而不是返回值,因此您實際上需要:
document.getElementById('button-play').onclick = play;
請記住,JavaScript函數是一流的函數,因此可以像對待其他任何對象一樣對待它們。
您在函數內的var
會使變量progress
局部處理。 因此,對局部變量的任何更改都不適用於全局變量。
function enableButton(){
var progress = 'no';
}
這行代碼在函數內部創建了新的變量var progress
。 因此,當函數退出時,此變量將被刪除。
嘗試將其更改為:
function enableButton(){
progress = 'no';
}
在啟動時在兩個函數之外聲明變量“ progress”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.