2011-09-20 76 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和它工作得很好......我應該提供完整的畫面..請爲此擔心..下次會照顧。