2014-10-10 78 views
1

我有div,鼠标悬停后它改变了这里的内容,我怎么能不用鼠标执行mouseover,这有可能吗?从JS执行mouseover()而不用改变鼠标的位置

我的div之前鼠标:

<div id="divId" class="some_css_class" style="visibility: visible;"> 
<div style="visibility: hidden;"> 
     <p>Test</p> 
    </div> 
</div> 

我的鼠标悬停后格:

<div id="divId" class="some_css_class" style="visibility: visible;"> 
    <div style="visibility: visible;"> 
      <p>Test</p> 
     </div> 
    </div> 

回答

7

您可以模拟使用触发功能的事件,但你触发事件之前,你必须指定其功能

$('#divId').on('mouseover', function(){ 
     $(this).find('>:first-child').css('visibility','visible'); 
    }); 
    // Line below triggers the event programmatically on load 
    $('#divId').trigger('mouseover'); 

看这个捣鼓更多参考 http://jsfiddle.net/Aerious/nLf90cyt/

0

您可以使用.mouseover()

$('#divId').mouseover() 
+0

没有变化 – Alex 2014-10-10 09:49:03

0

您可以使用.trigger()

$('#divId').trigger('mouseover'); 
+0

没有任何变化 – Alex 2014-10-10 09:47:54

2

你可以使用jQuery的mouseover(),但我认为模拟事件并不是一个好的方法去,如果你不仅仅需要一个CSS效果(比如programmaticaly隐藏div)。

有一个函数可以切换div状态并在每当你想改变div的状态时调用它。

+0

澄清:$('#divId')。mouseover(); // < - 将执行绑定到此元素mouseover事件的任何处理程序。 – Snellface 2014-10-10 10:44:35

0

你应该尝试使用没有JQuery的“native”Javascript。你可以试试这个:

var event = new Event('mouseover'); 
document.querySelector('#divId').dispatchEvent(event); 

给我的反馈,如果它的工作原理,你想它的工作;)

0

可以使用触发鼠标悬停事件:

document.getElementById('divId').onmouseover();

还需要绑定callback功能mouseover事件在您的div与id='divId'和更改div在回调中的可见性。

希望这有助于

+0

在Stack上强烈建议使用降价以提高可读性! – 2014-10-10 10:08:33