У меня сложная проблема со сценарием, который я пишу с помощью jQuery.
У меня есть таблица, в которой панель инструментов будет отображаться в любой строке при наведении курсора (кроме строки заголовка). Это отлично работает, и вот код для этого:
$cont.delegate('tr:not(:eq(0))','mouseover mouseout', function(e){
var $this = $(this);
var pos = $this.position();
if(e.type == 'mouseout') {
$actionToolbar.hide();
} else {
$actionToolbar.css({
'top' : pos.top + $this.height()/2 - $actionToolbar.height()/2,
'left' : pos.left + $this.width() - $actionToolbar.width()
}).show();
}
});
Проблема возникает при наведении курсора на панель инструментов действия. Событие строки mouseout
запускается, и панель инструментов скрывается (затем входит в бесконечный цикл отображения / скрытия). Это связано с тем, что панель инструментов позиционируется абсолютно и не является дочерним элементом строки.
Вот сделка:
- Я не хочу, чтобы он был дочерним по отношению к строке, потому что это означает, что мне придется удалять и добавлять в DOM каждое событие мыши - а это не так эффективно, как простое обновление CSS элемента.
- Я также хотел бы избежать таймеров, чтобы решить эту проблему, если это возможно.
Заранее спасибо!