2012-03-17 3 views
1

У меня есть странный вопрос с парением JQuery, в addClassJQuery странного поведения ти парения

$(document).ready(function(){ 
    $('#selectable li').hover(
      function(){ 
       $(this).addClass('selecting', 600); 
      }, 
      function(){ 
       $(this).removeClass('selecting', 800); 
      } 
    ); 

}); 

Странный теперь, что выбранный элемент загорается дважды. Как это может быть? Что я делаю, чтобы предотвратить два вспышки?

С наилучшими пожеланиями, B. Kaiser

+3

Вы могли бы получить нужные результаты без javascript и только чистые css –

+2

Что вы намерены использовать с параметрами 600 и 800? – Smamatti

+0

Что такое 600 и 800? .addClass() не имеет параметра времени. – j08691

ответ

0

Попробуйте использовать альтернативу, например, как это:

$('#selectable li').on('mouseenter',function(){ 
    $(this).addClass('selecting'); 
}).on('mouseleave',function(){ 
    $(this).removeClass('selecting'); 
}); 

Вам потребуется текущая версия JQuery. ver 1.7+

Не уверен, что вы пытаетесь выполнить числовые параметры в ваших звонках addClass/removeClass. jQuery documentation определяет эти функции следующим образом:

http://api.jquery.com/addClass/

.addClass (имя класса)
classNameOne или более имен классов, которые будут добавлены к атрибут класса для каждого элемента.

.addClass (функция (индекс, currentClass))
функции (индекс, currentClass) Функция возвращения одного или нескольких разделенных пробелами класса имена, которые будут добавлены к имени существующего класса (ов). Получает индекс позиции элемента в наборе и существующие имена классов в виде аргументов . Внутри функции это относится к текущему элементу в наборе .

removeClass() documentation работает практически так же.

+0

Что такое 600 и 800? .addClass() не имеет параметра времени. – j08691

+2

Наведите указатель мыши здесь. Нет необходимости в дополнительном привязке событий. BTW: У вас есть опечатка в слове 'function'. – Smamatti

+0

@smam - спасибо за это :) – Lix

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