2010-06-30 27 views
2

我知道這可能是一個非常簡單的修復。我需要爲這個函數使用2個變量,而對於當前代碼,它只會在第一個變量上觸發。變量必須用於所討論的功能。針對jQuery中的多個變量

var a = $(h1), b = $(h2); 

    $(a, b).hover(function(){ 
     ...stuff happens here 
    }); 

請不要建議像下面的情況。變量需要使用。

$('h1, h2').hover(function(){...}); 

回答

1
a.hover(myHover); 
b.hover(myHover); 

function myHover(){ 
    alert('i wish you a happy hovering!'); 
} 

$函數的第二個參數定義了DOM塊的搜索,如果你離開它,它需要的孔文檔。所以你最好不要亂用,如果你試圖讓你的頁面上的所有元素

1

如果因任何原因,你必須與代表的jQuery集合分別賦值的變量,則可以add他們:

var a = a.add(b); 
$(a).hover(... 

此外,不要忘記你可能想要$('h1'),而不是$(h1)

Here's a working fiddle

+0

更正 - 應該是'.add()',而不是'.merge()'。 – 2010-06-30 21:47:54

7

你不需要用jQuery最初包裝變量。

假設h1h2表示DOM節點:

$([h1, h2]).hover(function(){ 
    ...stuff happens here 
}); 

我們傳遞數組作爲jQuery函數接受DOM元素的陣列。見docs

請參閱examples

+0

不幸的是,這似乎不適用於最近創建的元素,或者我錯過了一些東西:'var e = $(''); var f = $(''); $([h1,h2])。hover(...); $('someelement')。append(e).append(f);'但這裏沒有任何反應。 – insertusernamehere 2012-06-22 15:23:17