Открытое событие подсказки jQuery UI срабатывает не тогда, когда всплывающее окно открывается видимо, но как только мышь входит в элемент. Он не подчиняется настройке свойства show.delay. Это документированное поведение, поэтому я полагаю, что это не ошибка.Как открыть событие всплывающей подсказки jQuery UI, чтобы подчиняться настройке свойства show.delay
Итак, если у меня есть подсказка о смежных ячейках таблицы, и пользователь перетаскивает мышь через эти ячейки, действия в моих открытых и закрытых обработчиках принимаются несколько раз - три, четыре, пять раз - столько же как количество ячеек, введенных мышью.
Что хорошего для выхода из открытого события, если show.delay еще не выяснилось?
EDIT: Не зная, сколько времени прошло на delay.show, я должен был выбрать произвольную длительность для SetTimeout, а также отслеживать ли класс-переключатель находится в процессе использования флага:
<snip> ...
show: {
delay: 666
},
open: function (event, ui) {
if (me.changingClass) return;
me.changingClass = true;
$("td.baz").switchClass("foo", "bar");
},
close: function (event, ui, dupids) {
$("td.baz").switchClass("bar", "foo");
setTimeout(function() { me.changingClass = false; }, 200);
}
можете ли вы показать код, который вы имеете так далеко? Я бы предположил, что тайм-аут сделает это, но я не могу сказать точно, не видя, с чем вы работаете. – apaul
Можете ли вы добавить достаточно кода для репликации вашей проблемы? – apaul
Все, что вам нужно сделать для репликации, это прикрепить всплывающую подсказку к TDs таблицы. открывать и закрывать огонь сразу же при вводе мыши и мыши, а не после достижения порога show.delay. Поэтому, если пользователь перетаскивает мышь (быстро) по нескольким соседним ячейкам таблицы, вход в ячейку запускает открытое событие и оставляя ячейку для запуска события закрытия, поэтому, если мышь коснулась трех ячеек во время перемещения, эти события будут стрелять каждый три раза. – Tim