2013-02-21 19 views
2
<script type="text/javascript"> 
var statustext="test"; 
$zack(function() { 
    $zack.setOnStatus(changelable); 
}); 
function changelable(status) { 
    if (status=='A') 
    statustext="OK"; 
    else if (status=='B') 
    statustext="Ready"; 
    else if (status=='C') 
    statustext="Go"; 
    document.getElementById('title').innerHTML = statustext; // OK, Ready or Go 
} 
</script> 

document.getElementById('title').innerHTML顯示OK,準備或去Java腳本:在功能分配var和使用VAR這一職能

但是,當我使用這個腳本低於上述腳本statustext變量包含某個預分配測試文本:

<script type="text/javascript"> 
document.getElementById('title2').innerHTML = statustext; // test 
</script> 

我想用statustextOK,準備或去文本多次。這個怎麼做?

回答

4

title2代碼運行馬上當頁面加載,但你的其他代碼響應(調用changelable狀態更改事件或其他)事件中運行。

如果你想設置title2給你設置title同一件事,請將此行:

document.getElementById('title2').innerHTML = statustext; 

... changelable功能,只是這行後:

document.getElementById('title').innerHTML = statustext; 

如:

document.getElementById('title').innerHTML = statustext; 
document.getElementById('title2').innerHTML = statustext; 

或者,如果你喜歡:

document.getElementById('title').innerHTML = document.getElementById('title2').innerHTML = statustext; 

另外,您if/else if/else if序列是真的什麼switch語句是:

function changelable(status) { 
    switch (status) { 
    case 'A': 
     statustext="OK"; 
     break; 
    case 'B': 
     statustext="Ready"; 
     break; 
    case 'C': 
     statustext="Go"; 
     break; 
    } 
    document.getElementById('title').innerHTML = statustext; 
    document.getElementById('title2').innerHTML = statustext; 
} 

或者你可以使用一個查找表:

var statustext="test"; 
var statusLabels = { 
    A: "OK", 
    B: "Ready", 
    C: "GO" 
}; 
$zack(function() { 
    $zack.setOnStatus(changelable); 
}); 
function changelable(status) { 
    statustext = statusLabels[status] || statustext; 
    document.getElementById('title').innerHTML = statustext; 
    document.getElementById('title2').innerHTML = statustext; 
}