2012-03-12 23 views
7

Sayfanın iki işlevi var. Ben fonksiyonu 2 içeride fonksiyonu 1'de bir değişkeni erişmek için bir yol bulmaya çalışıyorum:Jquery - Başka Bir İşlevden Kademeli Değişken

$(function() { 
    $('a[id=1]').live("click", function(event) { 
     event.preventDefault(); 
     var Var1 = "something1"; 
     }); 
}); 

$(function() { 
    $('a[id=2]').live("click", function(event) { 
     event.preventDefault(); 
     var Var2 = event.var1; 
     }); 
}); 

Yani benim yukarıda yanlıştır eminim ama işlevi 2'de ben bir değişkeni kapmak için çalışıyorum nasıl görebilirsiniz ilk işlev.

Bunu yapmamın bir yolu var mı? Nedenini bilmiyorum, ancak bunun event.var1 veya olay işlevselliği ile ilgili bir şey olduğunu düşünüyorum.

+1

İkinci tıkla etkinliğin, ilk tıklamanın etkinliğiyle ilgisi yoktur. – epascarello

+0

Onaylamak için, bir tıklama ile bir değişken ayarlıyorsunuz ve bunu ikinci tıklama ile mi kullanıyorsunuz? –

cevap

12

Her iki işlevden de, her ikisinin de erişebileceği bir kapsamda, değişkeni bildirmeniz gerekir. Tek bir fonksiyonu içine iki belge hazır işleyicileri birleştirerek ve orada değişkeni bildirmek öneriyorum:

$(function() { 
    var var1; // may want to assign a default 

    $('a[id=1]').live("click", function(event) { 
     event.preventDefault(); 
     var1 = "something1"; 
     }); 

    $('a[id=2]').live("click", function(event) { 
     event.preventDefault(); 
     var var2 = var1; 
     }); 
}); 

Ya da sen çok başka yerlerden erişmek gerekirse değişken bir küresel yapabiliriz.

İki tıklama olayının birbiriyle hiçbir ilgisi olmadığını unutmayın, bu nedenle kesinlikle olay verilerini paylaşmazlar. Ayrıca, ilk önce bir tıklamadan önce ikinci bağlantıya bir tıklama yapılabilir, bu yüzden var1 değerini bir varsayılan değer ve/veya ikinci tıklama işleyicisinin içinde kullanmak üzere undefined için test etmek isteyebilirsiniz.

(JS kongre küçük harfle değişken isimleri başlamaktır çünkü Ayrıca ben var1 için Var1 değiştirdik - Eğer kuralına uymanız gerekmez, ancak bunu tavsiye ederim.)

2

Her olay pencere nesnesinin bir genel değişken sonucunuzu saklayın ve olayların sırasına bakabilirim, her tıklamadan benzersiz olacaktır edilmektedir

$(function() { 
$('a[id=1]').live("click", function(event) { 
    event.preventDefault(); 
    window.Var1 = "something1"; 
    }); 

}); ILLUSTRATORNG.

İlgili konular