2009-12-30 57 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