2010-06-30 2 views
2

Я знаю, что это, вероятно, очень простое исправление. Мне нужно использовать 2 переменные для этой функции, и с текущим кодом она срабатывает только при первой переменной. Переменные ДОЛЖНЫ использоваться для рассматриваемой функции.Ориентация на несколько переменных в jQuery

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

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

, пожалуйста, не предлагайте что-то вроде сценария ниже. переменные NEED, которые будут использоваться.

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

ответ

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

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

второй параметр функции $ определяет Dóm кусок для поиска, если вы оставите его он принимает документ отверстие. так что лучше не связываться с, если вы пытаетесь получить все элементы на странице

1

Если по какой-либо причине вы должны работать с отдельно присвоенных переменных, представляющих коллекции Jquery, вы можете add их:

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

Кроме того, не забывайте, что вы, вероятно, хотите $('h1'), а не $(h1).

Here's a working fiddle.

+0

Исправлено - должно быть '.add()', а не '.merge()'. –

7

Вам не нужно сначала обертывать переменные с помощью jQuery.

Предполагая h1 и h2 представляют 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

Смежные вопросы