проблема с onmouseout для моего пользовательского выбора JavaScript - PullRequest
0 голосов
/ 03 февраля 2011

Я создал пользовательский выбор, используя javascript, как описано здесь: http://v2.easy -designs.net / article / replaceSelect /

Основная идея заключается в том, что выбор построен изсодержащий два (в моем случае)

с.Что я хочу сделать, это добавить функцию onmouseover, которая должна читать что-то вроде:
ulNode.onmouseout = function() {
      if (ulNode.className.indexOf('selectOpen') !- -1){
         selectMe(li[0]);
      }
}

, т.е. если мышь покидает ul, а ul открыта, первый элемент должен быть выбран.Это отлично работает, , но эта функция вызывается, когда я перемещаю мышь между li, даже если я не покинул содержащую ul.Есть идеи, почему это может произойти?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 03 февраля 2011

mouseover и mouseout неправильный король событий для этого случая.Они запускаются слишком часто, когда у вас есть другие элементы внутри элемента, у которого есть событие mouseout.Вам нужно что-то вроде mouseleave и mouseenter

Mouseleave в jQuery

1 голос
/ 03 февраля 2011

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

var hover_to = null;
$("ul").mouseover(function() {
   window.clearTimeout(hover_to);
   // (A) your stuff...
}).mouseout(function() {
   hover_to = window.setTimeout(function() {
      // (B) your stuff...
   },200);
});

Это, мы надеемся, обрабатывает нежелательные атомные события.Осторожнее с областью действия (B).

...