2013-04-20 43 views
0

我有一個begginer問題。我有「菜單」,菜單是樣式表,並在jQuery中獲得代碼,使菜單移動。我的問題是,爲什麼我不能在我的代碼中使用$這個變量?我是jQuery中的佼佼者,所以請耐心等待。任何答案我都會很高興。

$(document).ready(function(){ 
    $('.item').hover(function(){ 
     $($this).stop().animate({paddingLeft: '20px'}, "slow"); 
}, function(){ 
     $($this).stop().animate({paddingLeft: '0px'}, "slow"); 
    }); 
}); 

我的代碼:jsFiddle

+4

$這不是PHP ;-) – Virus721 2013-04-20 20:54:54

+1

這不是問題... – 2013-04-20 20:55:37

+0

嗯,這是什麼答案?我只是說,提問者並不是在尋求關於PHP的東西,而是關於jQuery的一些問題,並且對$ this有懷疑! – 2013-04-20 21:02:27

回答

11

這只是應該是$(this)

2

$前綴(在Javascript/jQuery代碼)之前的變量通常是約定用於指示變量是jQuery對象(而不是一個簡單的Javascript)。如果你以前見過它,就像任何常規變量一樣。

您應該使用$(this)來代替,它會在jQuery對象中'包裝'this

0

使用本

$(document).ready(function(){ 
    $('.item').hover(function(){ 
     $(this).stop().animate({paddingLeft: '20px'}, "slow"); 
    }, function(){ 
     $(this).stop().animate({paddingLeft: '0px'}, "slow"); 
    }); 
}); 
2

通常人們使用$this緩存$(this),使他們不必反覆啓動jQuery對象,這是昂貴的。

$this = $(this) 
$this.stop() 
$this.animate() 
// etc... 

這是按照慣例進行,並在JavaScript中$字符沒有特殊的意義。以爲我會提到,因爲沒有人似乎提到過這個原因。

0

$thisthis不一樣。在開發的時候我們寫爲var $this = $(this)比它變成了一個jQuery對象。 $this表示在this當前我們有一個jQuery對象。它只是爲了您可以使用任何其他變量,因爲$這是沒有必要的。您可以編寫增值稅$that = $(this)並使用它將表現相同。