2010-11-18 37 views
0
var global_ref = null; 

function a(){ 
    function some_click_handler { 
     global_ref = $(this); 
    } 
} 

// later in 
function b() 
{ 
    $(global_ref).css(...) // or global_ref.css(...) ??? 
} 

以上概念正確嗎?和語法的權利?存儲jquery引用是否合法?

+0

致電警察,陳斌正在使用全局變量! :) – epascarello 2010-11-18 13:12:12

+0

哦,是的,我在做罪犯! – 2010-11-18 13:26:40

回答

3

您不需要$(global_ref),因爲global_ref已經是jQuery對象。

話雖這麼說,依靠全局一樣,是一個不好的做法,但它會工作(假設b()a()後,總是叫)

+0

什麼是更好的主意?我想將當前的彈出窗口存儲到全局變量中,這樣如果另一個彈出窗口將顯示我們可以關閉此前一個彈出窗口。 – 2010-11-18 12:39:05

+0

至少你應該創建一個「註冊表」類來保存你的全局變量,這樣你就可以在你自己的「命名空間」下擁有它們,而不會「污染」全局的「命名空間」。 – 2010-11-18 12:41:06

+1

@Bin你可以設置一個類到彈出窗口(如「activePopup」)。然後你可以選擇它並隱藏它:'$(「。activePopup」)。hide();' – 2010-11-18 12:41:28

0

忽略一些語法錯誤,這肯定是合法的。但你只需要global_ref.css(...)global_ref = $(this)它已經是一個jQuery對象的引用

相關問題