我一直在使用以下代碼片段來確定Chrome/Safari & FF是否有用戶懸停在錨點上。jQuery爲什麼:懸停只能工作一次?
var isURL = $("a", obj).is(":hover");
我見過不同的崗位約:懸停是一個CSS選擇器,但我不能讓我的周圍頭就是爲什麼代碼返回真如果有內OBJ 1頁的鏈接,但拋出一個的javascript無法識別的表情懸停如果有2個或更多錯誤。
這裏是一個小提琴:懸停工作: - http://jsfiddle.net/2kyaJ/122/
相同,但多元素(不工作): - http://jsfiddle.net/2kyaJ/121/
任何人都可以給我講解一下?
當我看到這個問題的方法... How do I check if the mouse is over an element in jQuery?
4年是這樣仍然是最好的,看似只方法來確定用戶是否懸停在一個元素?如果是的話,任何人都可以提供一個例子嗎?
編輯:不得不去釣魚我所需要的,但事實證明這很簡單,因爲它是非常好的作品。
我目前在jQuery 1.9.1插件中使用它,我在父元素(obj)的mouseover上觸發動畫。希望其他人在未來發現它有用。使用.length而不是.size作爲.size從版本1.8開始已棄用。
function isMouseOver() {
if ($('a:hover', obj).length != 0) {
return true;
} else {
return false;
}
}
用法:
var isURL = isMouseOver();
因爲要使您的邏輯工作,* all *'.sample'元素必須同時進行徘徊。你需要檢查哪個元素(如果有的話)單獨懸停以達到你想要的效果。 – BenM 2013-02-26 01:26:45
@BenM,如果這是真的,那麼[文檔](http://api.jquery.com/is/)是錯誤的:「根據選擇器,元素或jQuery對象檢查當前匹配的元素集並返回'如果**這些元素中的至少一個**匹配給定的參數,則爲true。「 – redbmk 2013-02-26 01:32:04
好吧,檢查你的控制檯。 Sizzle不支持包含多個元素的jQuery對象的'懸停':未捕獲的錯誤:語法錯誤,無法識別的表達式:懸停。 – BenM 2013-02-26 01:34:16