我用jQuery編寫的腳本有一個棘手的問題。Javascript - 使用鼠標事件和浮動元素的問題
我有一個表,如果鼠標懸停在上面(標題行除外),將有一個工具欄出現在任何行上。這很好,這是它的代碼:
$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那樣有效。
- 我也想避免定時器解決這個如果可能的話。
在此先感謝!
'mouseenter'和'mouseleave'不與事件委託的工作。無論如何,它不會解決問題,因爲工具欄不是該行的子元素。 – typeof 2011-04-25 20:08:42