2011-06-15 35 views
1

我需要一個函數來將類添加到現在鼠標所在的元素上。當鼠標移動時,它必須改變,每一個元素都應該有額外的類。將類添加到鼠標所在的元素上

我知道如何使用這個

var mouseX = 0; 
var mouseY = 0; 
$().mousemove(function (e) { 
    mouseX = e.pageX; 
    mouseY = e.pageY; 
}); 

但要獲得一個元素的x和y然後我如何才能添加類得到孔元件?

這裏有人可以幫我嗎?

+0

你並不需要得到x和y,你只需要一個'hover'事件綁定到所有元素。其餘的將由jQuery爲你處理。看看我的答案。 – Shef 2011-06-15 11:21:24

+0

Thnak你。但我不需要常規的懸停功能,不需要做我需要做的事情,我需要知道如何根據x和y位置獲取元素。經常的盤旋不會讓我看到所有的元素。我認爲這隻能給我div而不是所有其他的東西。 – Ovi 2011-06-15 11:24:01

+0

看看[懸停](http://api.jquery.com/hover/) – fusion 2011-06-15 11:10:47

回答

1

這就是我一直在尋找:

$('*').hover(
    function (event) { 
     var elem = document.elementFromPoint(event.clientX, event.clientY); 
     $(elem).addClass('khoverElem'); 
    }, 
    function (event) { 
     $('.khoverElem').removeClass('khoverElem'); 

    } 
); 
1

所以鼠標懸停的任何元素都會得到那個類?

$('*').hover(function(){ $(this).addClass('theClass'); }); 
+0

我不需要常規的懸停功能,不需要做我需要做的事情,我需要知道如何根據需要獲取元素x和y的位置。經常的盤旋不會讓我看到所有的元素。 – Ovi 2011-06-15 11:17:00

+0

我認爲它只給我div而不是所有的其他東西 – Ovi 2011-06-15 11:18:06

+1

@Ovi在觸發事件的元素上使用offset()。這可能會奏效。 – 2011-06-15 11:28:14

1

你可以使用 -

  1. mouseover

甚至您可以使用此代碼須─jQuery有華中科技大學分裂hover在休耕way-

$(".hoverme").live("mouseover mouseout", function(event) { 
    if (event.type == "mouseover") { 
    // do something on mouseover 
    } else { 
    // do something on mouseout 
    } 
}); 
1
$('*').hover(function(){ 
    $(this).addClass('special'); // mouse over 
}, 
function(){ 
    $(this).removeClass('special'); // mouse out 
}); 
1

T Ø知道觸發您可以使用事件的「目標」屬性,然後得到它的使用offset()

$('*').mousemove(function (e) { 
    var target = e.target //this is the element that triggered the evnt 
    //do what you want with target: to get it's position: 
    var position = $(target).offset() 

}); 

編輯使用位置事件的元素「*」選擇所有元素或附加該文件的$(document )

PS準備好處理很多事件,我不知道這會如何影響性能。