2011-06-05 63 views
1

我有以下幾點:使用封閉範圍,保持最後的值

$('th').click(function() { 
    var $th = $(this); 
    ... 
}); 

使用封閉範圍,我想說:

var $th; 
$('th').click(function() { 
    if ($th !== $(this)) { 
     $th = $(this); 
     ... 
    } 
}); 

注:此代碼只是前</body>,所以我不需要$(function(){});

+2

有什麼問題嗎? – Orbling 2011-06-05 02:40:36

+0

我想我必須將其定義爲一個匿名函數,它返回一個函數,以便在返回語句之前定義$ th。 – 2011-06-05 02:42:33

+1

不起作用的原因是'$(this)!= $(this)',jQuery構造函數產生一個新對象,所以你不能像這樣檢查它。否則第二個陳述就可以了。 – Orbling 2011-06-05 02:47:13

回答

3

您應該檢查基礎DOM元素是否相等:

if ($th[0] !== this) { 

(您也可以存儲this本身沒有調用$

+0

我會重做代碼並詢問我的下一個問題。謝謝! – 2011-06-05 02:56:33