我使用 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 有效。
- 如果可能的话,我也想避免使用计时器来解决这个问题。
提前致谢!