簡體   English   中英

檢查變量jQuery的最佳方法

[英]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中的scopeGlobalFunction 如果您在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM