2010-02-10 4 views
2

У меня есть два сортируемых списка, один из которых является вложенным, с эффектом ввода мыши на элементы li вложенного сортируемого списка. Моя проблема в том, что функции mouseenter и mouseleave вызываются непоследовательно, когда пользователь быстро перемещает мышь через список над дочерними элементами, которые являются полями ввода.jQuery mouseenter/mouseleave ошибка, когда целевой div имеет дочерние поля ввода

Вот пример того, что происходит, вам нужно перетащить панель в список, а затем перетащить 3-4 элемента текстового поля в панель, чтобы увидеть проблему. Вы можете видеть, что 2 числа в правом верхнем углу отслеживают ввод/вывод мыши. Примечание. До сих пор я тестировал только мой сайт в firefox 3.5.7. Проблема, как представляется, фиксируется в Firefox версии 3.6, но мне нужно, чтобы это работало на все предыдущие версии Firefox 3.x

example

Мой JQuery 1.4.1 Код:

Вот MouseEnter и MouseLeave функции:

$(".pane > li").live("mouseover", function(){ 
$("#in").html(in1); 
$(this).children(".test").stop().animate({opacity: 1},400); 
in1++; 
}); 

$(".pane > li").live("mouseout", function(){ 
$("#out").html(out1); 
$(this).children(".test").stop().animate({opacity: 0},400); 
out1++; 
}); 

Я попытался присвоить MouseEnter и MouseLeave функции без использования живой(), когда я вызываю функцию, которая добавляет элементы Li динамически на страницу. Однако проблема все еще сохраняется, и вы можете увидеть ошибки, возникающие в отладчике Firebug. Возможно, это имеет какое-то отношение к relatedTarget в Firefox. Спасибо за любую помощь.

ответ

0

Ничего себе, что выглядит довольно круто. Во всяком случае, возможно, вы можете сделать так, чтобы, когда «mouseenter» срабатывает по одной вещи, он запускает код, соответствующий «mouseout» для всех остальных. Поскольку они не могут пересекаться, похоже, что это сработает.

+0

Хм, на самом деле это не получилось. Он стал запутанным, потому что я хотел бы добавить еще одно событие mouseenter() в дочерний элемент для элемента с явным наведением. – Ag565

0

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

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

  • Нет связанных вопросов^_^