2009-12-30 103 views
5

有沒有辦法懸停使用javascript的元素? 我不想創建另一個類,我只是想讓元素在JavaScript中懸停時,我的鼠標指針不在該元素上。懸停項目與JQuery

例如,我有5個元素與同一類,我想打電話給懸停在所有的人時,其中一個實際上是徘徊。

+1

你在談論解決所有您的收藏中的項目在同一時間實現這一目標? – SLaks 2009-12-31 00:01:06

+0

「懸停物品」意味着什麼?讓它看起來不同? – 2009-12-31 00:03:49

回答

6

我假設你是指你已經與鏈接(例如)關聯的僞類:hover。當您將鼠標懸停在該鏈接上時,您想要調用所有其他鏈接的:hover樣式。

不幸的是,你不能從jQuery調用:hover樣式,這要求你實際上將鼠標指針移動到該元素上。你必須使用類並利用jQuery的懸停事件。

2

如果我正確理解您的問題,您已經使用jQuery添加了一個hover事件,並且您希望手動觸發該事件而不管鼠標。

如果我理解正確的話,你要撥打的mouseenter觸發mouseenter事件。

如果我理解正確,你實際上有你想使用JavaScript來觸發:hover CSS規則,這是不可能的。
相反,你應該添加一個類名的規則(例如,something:hover, something.FakeHover { ... }),並添加使用jQuery該類名。 (例如,$(...).addClass('FakeHover'))。

0

在jQuery中,the trigger function允許您在元素上觸發事件(包括mouseover,我相信)。

在直接的JavaScript,如果您分配一個功能到元素的事件處理程序,當然你也可以調用,只要你想。例如。

function mouseoverHandler() { 
    // Do something 
} 

// Assign function to element’s event handler 
document.getElementById('link1').onmouseover = mouseoverHandler 

// Call that function 
document.getElementById('link1').onmouseover(); 
+2

你甚至不需要'trigger',不調用回調函數事件工作爲好,例如'$(「#富」)點擊();'會火'#foo'的單擊事件。 – 2009-12-31 00:07:48

+0

沒錯,但我認爲這不適用於'mouseover'。根據[文檔](http://docs.jquery.com/Events),'mouseover()'只是讓你將一個函數綁定到一個元素的mouseover事件。它不會讓你觸發事件。 – 2009-12-31 00:11:22

+1

即使文檔沒有提及它,它也適用於'mouseover'。我檢查來源。 – SLaks 2009-12-31 00:17:45

3

您可以通過在你的鼠標事件處理函數

var items = $(".some-class-applied-to-many-different-items"); 
items.hover(function() { 
     // Mouseover state 
     items.addClass("blah"); // <- for example 
    }, 
    function() { 
     // Mouseout state 
     items.removeClass("blah"); 
}); 
+0

我很想知道投票結果如何是爲了。 – 2010-01-01 20:10:48