jQuery Как убить созданный Div? - PullRequest
0 голосов
/ 16 июня 2011

На данный момент у меня есть список продуктов (div), который при наведении курсора создает дублирующий div и позиционирует его поверх исходного div (смещает немного и повторно создает с помощью css).Этот новый div больше и предлагает больше информации, которая отображалась в виде списка.

Когда я наведите курсор мыши на новый div, это .remove () 'd, однако я обнаружил, что он этого не делаетнемедленно, и если я перемещаю мышь достаточно быстро, событие hover запускается, но событие mouseleave не срабатывает (так как новый div просто остается на экране).

Что у меня есть на данный момент, чтобы определить, когдачтобы удалить новый div:

jQuery('.newDiv').mouseleave(function(){
  jQuery(this).remove();
});

Как мне получить мой новый div, чтобы убедиться, что мышь включена или выключена, чтобы я мог убить его правильно?

Ответы [ 2 ]

4 голосов
/ 16 июня 2011

Вы думали об использовании CSS для его исправления?

.newDiv{
  display:none;
}
  .newDiv:hover{
    display:block;
  } 

Таким образом, unhover все равно будет скрывать div. Возможно, агент рендеринга работает быстрее, чем движок JS, что избавит вас от этого кратковременного сбоя.

0 голосов
/ 16 июня 2011

Может быть, что-то вроде этого:

jQuery('.newDiv').mouseleave(function() {
    var self = jQuery(this);
    setTimeout(function() {
        self.remove();
    }, 250);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...