2013-02-21 23 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; 
}