2011-09-05 52 views
0

我正在爲按鈕做一個非常簡單的懸停函數,我需要記下一個變量。我可以在懸停的第一個狀態中使用變量,但不能在第二個狀態中使用。它是否與變量是在本地定義而不是在第二個函數中可用的事實有關?在Jquery中傳遞懸停函數中的變量

下面的代碼:

$('#'+'[id^="world_map"]').hover(function() { 

    var that2 = this.id; 

    $('#' +that2+ '_thumbnail_container').animate({"opacity" : 1}, 150, function() { }); 
    $('#' +that2+ '_thumbnail_container').css('visibility','visible'); 

     },     


    function() { 
    $('#' +that2+ '_thumbnail_container').animate({"opacity" : 0}, 150, function() { }); 

    $('#' +that2+ '_thumbnail_container').css('visibility','hidden'); 
}); 

的感謝!

回答

2

你說得對,這是因爲變量that2是在第一個函數的範圍內定義的。但是,這兩個方法中的值(this.id)本身都可用。

$('#'+'[id^="world_map"]').hover(function() { 


    $('#' +this.id + '_thumbnail_container').animate({"opacity" : 1}, 150, function() { }); 
    $('#' +this.id+ '_thumbnail_container').css('visibility','visible'); 

     },     


    function() { 
    $('#' +this.id+ '_thumbnail_container').animate({"opacity" : 0}, 150, function() { }); 

    $('#' +this.id+ '_thumbnail_container').css('visibility','hidden'); 
}); 
+0

aha so(this)all time goes down?謝謝! – kareldc

+0

'this'總是*對DOM對象(不是jQuery對象)的引用。 – Jamiec