2011-09-20 119 views
1

我有一个全局变量listId(参考下面的代码)声明一个默认值,然后我在jq(“#nav1 li a”)中分配它。click(function ()但是,一旦其他javascript函数调用发生在此函数之后,listId就不会反映更改后的值,而是它只是声明中分配的默认值。如何才能使其反映更改后的值?Jquery全局变量赋值和在javascript函数中使用

感谢

listId = 'x'; 
var jq=jQuery.noConflict();// for avoiding conflict 


jq("#nav1").click(function(){ 
    alert(this.id); 
    listId = this.id; //this.id is displayed in alert message 

}); 

function pageSwitch(){ 
alert('on change id : '+listId); 
//when called after the click function, this does not reflect changed values 
} 
+0

也许将listID声明为变量? 'var listID ='x';' – f0x

+0

[Works for me;看到这个小提琴](http://jsfiddle.net/davelnewton/qDCT9/#base)。 –

+0

我也不确定你在哪里打电话,但是定义你在呼叫之上呼叫的功能是个好习惯 –

回答

0

您所提供为我工作的代码。该listId变量已成功变更为“NAV1”。我已经写了一个小工商业污水附加费t脚本,它将listId更改为div的id onClick,然后使用函数将其更改回“x”。它每次都有效。 Click here来测试它。

0

感谢guyz的帮助..实际上这个函数是通过点击一个h:commandLink..so来调用的,每次页面被重新载入,js函数也是如此......我只是使用了a4j:commandLink和它工作得很好......我应该提供完整的画面..请为此担心..下次会照顾。