2011-03-13 180 views
0

嘿,我早些時候問過類似的問題,並且對於雙重發帖表示歉意,但是這對我想要的東西提出了更多問題。我花了幾個小時弄清楚這一點,至今還沒有提出。變量作用域在這種情況下會如何工作?

有三個功能,一個是全局功能,然後是兩個功能,它們是由切換事件觸發的。我想第二個函數做一些事情來獲得一個值並將它傳遞給第二個函數。

function(){ 

    $('selector').toggle(

     //i want this to gather a value and store it in a variable 
     function(){ }, 

     //and i want this to accept the variable and value from the previous function 
     function(){} 
    )} 

回答

0

可以使用jQuery數據(http://api.jquery.com/jQuery.data/)來存儲用於在選擇各元素相匹配來存儲和檢索的值的值。

EXA:

function(a,b){ 



    $('selector').toggle(

      //i want this to gather a value and store it in a variable 
      function(){ 
      $(this).data("<YOUR_VARIABLE_NAME>", <YOUR_VARIABLE_VALUE>); 
      }, 

      //and i want this to accept the variable and value from the previous function 
      function(){ 
      var someVariable = $(this).data("<YOUR_VARIABLE_NAME>"); 
      } 
     )} 
+0

確定這就是怪異的一部分。我使用$(this).data()並使用alert()來檢查值是否正確。它爲第一個函數返回正確的值,但對於第二個函數,它返回null。一切都是一樣的,但不知何故,它返回爲空的第二個功能 – Ben

+0

已發佈樣本...請嘗試在這些行,讓我知道如果你仍然有問題... – Chandu

+0

好吧我用警報($(this))。 data(「variable_name」)),並且它返回第一個函數的正確值,但是它爲第二個函數返回null。我完全按照你所說的......爲什麼不通過這項工作...... – Ben

0
function(){ 
    // this var will be in scope for anything inside this function 
    var availableInBoth; 

    $('selector').toggle(function(){ 
     // this var is only usable in this function 
     var availableHereOnly = 10; 
     availableInBoth = 10; 
    }, function(){ 
     console.log(availableInBoth); 
    }) 
} 
相關問題