2009-08-12 87 views
0

我有以下jQuery代碼。正如你所看到的,我有一個基於來自this.getIndex()的值顯示當前選項卡的警報。jQuery就緒函數值傳遞給Javascript函數

我的問題是,我怎樣才能訪問這個值,以便我可以在不與ready(function)一起駐留的其他javascript函數中使用它?

我希望能夠代替說:

tabIndx = this.getIndex()當該值發生變化,我想另一個函數中使用它樓下,準備(功能)之外,說

var tabIndx; 

$(document).ready(function(){ 

    // initialize scrollable 
    $("div.scrollable").scrollable({ 
     size: 1, 
     items: '#thumbs', 
     hoverClass: 'hover', 
       onSeek: function() { 
        alert("Current tab is: "+ this.getIndex()); 
       } 
    }); 
}); 


function showVal() { 
    alert("current tab selected is: "+ tabIndx); 
} 

因此,每次點擊不同的選項卡時,我都希望showVal()函數以正確的值觸發tabIndx。

任何想法。

謝謝。 Tony。

回答

2

替換此:

alert("Current tab is: "+ this.getIndex()); 

有了這個:

tabIndx = this.getIndex(); 
showVal(); 

這一切就是這麼簡單。 $(document).ready()函數沒有什麼特別之處。這只是一個普通的JavaScript函數,恰好與jQuery一起出現,並且jQuery在文檔準備好時纔會調用。

您可以隨意調用其他函數,並訪問在$(document).ready()之外聲明的變量,就像使用任何JavaScript函數一樣。

+0

感謝您的快速反應Votey - 讓我們說,我其實也想這個tabInx值傳遞到javascript函數的參數 - 我需要調用此函數與onSeek函數中的參數? – tonyf 2009-08-12 15:37:26

+0

只要在範圍內,您可以以任何喜歡的方式使用tabIndx。正如你在那裏聲明的那樣,它是全局的,所以你可以在腳本中的任何地方引用tabIndx(包括將它作爲參數傳遞)。請記住,雖然變量在範圍內,但直到onSeek事件觸發時纔會有意義的值,所以在該函數內使用它可能是明智的。 – VoteyDisciple 2009-08-12 16:01:31

0

你已經聲明你的tabIndx是全局的,所以這應該滿足你的需求。我會初始化它還有:

var tabIndx = 0; 

您使用jQuery的內this將返回參考你的選擇(div.scrollable)股利的方式,所以使用它在你的getIndex()功能一起是有點無意義的。

參考tabIndx獲取數值或設置應該沒問題。

除非我已經完全誤解了你想要的...