2014-10-10 28 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