2010-02-12 33 views
1

我有以下功能:变量后运行的JavaScript功能设置

// NATION 
var x, y, z; 
function flag(nation,area) 
{ 
x = nation; 
this.nation=nation; 
var el=document.getElementById("desc"); 
el.innerHTML='The region you have selected is <b>'+area+'</b>'; 
document.getElementById("flag").innerHTML='<img src="images/flags/'+nation+'.jpg">'; 
} 
// SERVICE 
function output(service) 
{ 
y = service; 
this.service=service; 
var el=document.getElementById("service-desc"); 
el.innerHTML='You have selected a <b>'+service+'</b> service.'; 
document.getElementById("clock").innerHTML='<img src="images/clock-'+service+'.png">'; 
} 

而且一旦用户设置的变量:国家 & 服务已经设置,那么我想运行此功能:

function selectmodel() 
{ 
xmlhttp=GetXmlHttpObject(); 
if (xmlhttp==null) 
    { 
    alert ("Your browser does not support XMLHTTP!"); 
    return; 
    } 
var location=x; 
var time=y; 
var weight=z; 
var url="selectmodel.php"; 
url=url+'?location='+location+'&time='+time+'&weight='+weight; 
xmlhttp.onreadystatechange=stateChanged1; 
xmlhttp.open("GET",url,true); 
xmlhttp.send(null); 
window.location.hash="slider"; 
} 
function stateChanged1() 
{ 
if (xmlhttp.readyState==4) 
    { 
    document.getElementById("result").innerHTML=xmlhttp.responseText; 
    } 
} 

请有人能够足够让我知道如何做到这一点?

感谢, B.

编辑 - 对不起忘了说,这些变量来自的onclick的(的onClick = “标志( 'scotislands', '苏格兰岛屿');”)

回答

0

我猜您正在寻找 - 在真正的Javascript精神 - 对于某些类型的事件被触发,也许甚至还有一个办法,但在这种情况下,我只需要调用每个功能的检查:

var x = null; 
var y = null; 
var ... 

function trySelectModel() { 
    if (x == null) || (y == null) return; 
    selectModel(); // Your function 
} 

function flag(...) { 
    // Your existing code 
    trySelectModel(); 
} 

function output(service) { 
    // Your existing code 
    trySelectModel(); 
} 

function selectmodel() { 
    // Your existing code 
} 
+0

你好,请问如果(x == null)|| (y == null)return; 不说如果null运行? – Bift 2010-02-12 11:01:08

+0

不,它会跳出该函数,如果其中一个或两个变量都为空,即在此情况下从不调用selectModel行。 – 2010-02-12 12:05:35