从JS执行mouseover()而不改变鼠标的位置

时间:2014-10-10 09:42:01

标签: javascript jquery html css

我有div,鼠标悬停之后它改变了这里的内容,如何在没有鼠标的情况下执行鼠标悬停,有可能吗?

鼠标悬停之前
我的div:

<div id="divId" class="some_css_class" style="visibility: visible;">
<div style="visibility: hidden;">
      <p>Test</p>
   </div>
</div>
鼠标悬停后我的div:

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

6 个答案:

答案 0 :(得分: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/

答案 1 :(得分:2)

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

当你想要改变div的状态时,有一个切换div状态并调用它的函数会更清晰。

答案 2 :(得分:0)

您可以使用.mouseover()

$('#divId').mouseover()

答案 3 :(得分:0)

您可以使用.trigger()

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

答案 4 :(得分:0)

你应该尝试使用&#34; native&#34;没有JQuery的Javascript。你可以试试这个:

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

如果有效,请给我反馈意见;)

答案 5 :(得分:0)

您可以使用以下方式触发鼠标悬停事件:

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

此外,您需要使用callback在您的div上绑定mouseoverid='divId'事件的功能,并在回调中更改div个可见性。

希望这有帮助