Какие-либо преимущества наведения мыши над мышью в JQuery? - PullRequest
7 голосов
/ 18 мая 2010

Я довольно новичок в JQuery API. Я использовал наведение мыши, но я никогда раньше не использовал наведение. Поэтому мне интересно, стоит ли мне вместо этого использовать hover.

Ответы [ 5 ]

10 голосов
/ 18 мая 2010

Ну, .hover() связывает два обработчика для событий mouseenter и mouseleave, так что это более удобный способ, а также более простой понять цель.

mouseenter отличается от mouseover тем, что mouseenter не запускается , если курсор находится над / входит в дочерний элемент элемента, с которым связан обработчик .
Он запускается только один раз, когда курсоры входят в элемент. mouseover всегда срабатывает, даже если курсор находится над дочерним элементом.

Лучший способ увидеть разницу - взглянуть на пример mouseleave().

Кроме того, mouseover и mouseout - это реальные события JavaScript, тогда как mouseenter и mouseleave - это события, предоставляемые jQuery (afaik).

В конце концов, это зависит от того, чего вы хотите достичь. Нет правильного или неправильного, и все эти методы имеют свою цель. Если вы не покажете какой-нибудь код, сказать больше нечего.


Если вы имеете в виду :hover в CSS, и вы можете достичь желаемого эффекта с ним, пойти на это. Если для какой-либо проблемы есть решение, отличное от JS, всегда выбирайте это.

2 голосов
/ 18 мая 2010

hover просто избавляет вас от необходимости выполнять mouseenter и mouseleave, выполняя обе функции в одной функции.

1 голос
/ 18 мая 2010

Я предпочитаю использовать css hover, потому что кажется, что я пишу меньше кода, чтобы сделать то же самое.

0 голосов
/ 18 мая 2010

Поскольку вы учитесь, вот еще один эквивалент использования hover:

$('selector').bind('mouseenter mouseleave', function(){
 if (event.type == "mouseenter") {
  // MouseEnter code
 } else {
  // MouseLeave code
 }
})
0 голосов
/ 18 мая 2010

Они одинаковы, за исключением того, что при наведении курсора мыши и отпускания мыши

См .: http://api.jquery.com/hover/

Так что вы можете использовать это так

$('selector').hover(function () {
    // Do stuff on mouse enter
  }, function () {
    // Do other stuff on mouse leave
  }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...