我想爲一個mouseenter事件使用jQuery的實時功能,但目前它不受支持。下面是我的第一個解決方案,但看起來並不理想。建議?改進?我應該如何使用jquery的實時功能模擬mouseenter事件?
// mouseenter emulation
jQuery('.selector').live('mouseover',function (e) {
// live sees all mouseover events within the selector
// only concerned about events where the selector is the target
if (this != e.target) return;
// examine relatedTarget's parents to see if target is a parent.
// if target is a parent, we're "leaving" not entering
var entering = true;
jQuery(e.relatedTarget).parents().each(function() {
if (this == e.target) {
entering = false;
return false; // found; stop searching
}
});
if (!entering) return;
/*
the rest of my code
*/
});
我無法檢查目標的children爲relatedTarget b/c有沒有一種簡單的方法來獲取所有的子節點。 我不能直接檢查,如果目標的父母有relatedTarget作爲父母,因此「輸入」目標,B/C的鼠標懸停,它可能是從鄰接兄弟姐妹而不是父母進入。
此解決方案工作正常。我測試過了,看起來很好,但我怎麼能改進它?它也受到DOM如何佈局的困擾。選擇器元素的某些部分必須暴露才能看到mouseover事件,但這在我嘗試使用的示例中很少出現問題。不過,如果有一種方法可以保證它可以被看到,那會很好。
我想我想知道如果我正在接近這個權利,如果沒有,有什麼更好?