2012-03-12 2 views
0

Я пытаюсь угаснуть все привязывающие цвета ссылок и наши мыши и мыши. Это мои лучшие усилия.jQuery ui исчезает в цвете, затем исчезает.

$(document).ready(function(){ 
    $('a').on('mouseenter' , function(){ 
    $(this).toggle(function(){ 
     animate({color:"#ee860a"}) 
      }); 
     } 
    ); 
}); 

Фактически, что мое лучшее усилие было без функции переключения, что может быть не уместно здесь. Мне нужно сделать 2 функции? 1 с помощью мыши и 1 с помощью мыши? Или это лучше/возможно сделать с переключением?

+0

Используйте событие 'hover', которое имеет две функции обратного вызова. – Blender

ответ

1

Ваш синтаксис является неправильным. animate используется так:

$(document).ready(function(){ 
    $('a').on('mouseover' , function(){ 
     $(this).animate({color:"#ee860a"},'slow'); 
    }); 
});​ 

Смотрите эту скрипку: http://jsfiddle.net/ZtBpM/1/

Ваш подход к mouseout (а использовать это, чем mouseleave - то же самое для mouseover вместо mouseenter) нормально (просто делать то же самое с другим событием), хотя вы также можете использовать hoverhttp://api.jquery.com/hover/, который позволит вам связать функции для мыши и мыши в одном вызове.

+0

Да, это то, как у меня было это сначала .. Просто подумал, что я брошу в тумблер, чтобы показать, где я был в тупике. Обучающие программы, которые я наблюдал, научили меня использовать ON, поскольку это более прямой подход или некоторые из них, чем использование зависания. Или это то, что я думаю, что я помню. Кроме того, это учебные пособия для начинающих, поэтому наведение может появиться позже. – Sackling

+0

Потенциал для использования зависания будет заключаться в том, что вы можете связать два события только одним вызовом селектора (т.е. быстрее - хотя я думаю, что это вопрос .1 мс), и это меньше кода для поддержки, недостатком является то, что вы можете получить путают, когда вы пытаетесь отвязать зависание ('$ (this) .unbind ('hover')' не работает), так как вам придется использовать '$ (this) .unbind ('mouseenter mouseleave')'. Пойдите с тем, с чем вам больше всего нравится. – m90

2
$(document).ready(function(){ 
    $('a').hover(function(){ 
     $(this).animate({color:"#ee860a"});  
    }, function() { 
     $(this).animate({color:"#999"}); 
    }); 
}); 

Попробуйте это :)

+0

Так что это тоже работает. Я мало знаю о зависании, но он, похоже, уже учитывает mouseenter и mouseout (зависает .. имеет смысл) .. так что 2 параметра наведения - это то, что происходит, когда они зависают, и когда вы покидаете зависание? Думаю, я могу просто проверить api .. – Sackling

+0

Да, метод .hover() связывает обработчики для событий mouseenter и mouseleave. См. [JQuery .hover()] (http://api.jquery.com/hover/) – JvZ