我在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>
您可以使用触发器函数模拟事件,但在触发事件之前,您必须指定其函数
$('#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/
您可以使用jQuery的mouseover()
,但我认为如果您需要的不仅仅是css效果(比如编程隐藏div),模拟事件不是一个好方法。
如果有一个函数来切换div状态,并在您想要更改div的状态时调用它,则会更干净。
您可以使用.mouseover()
:
$('#divId').mouseover()
您可以使用.trigger()
$('#divId').trigger('mouseover');
您应该尝试在没有JQuery的情况下使用"原生"Javascript。你可以试试这个:
var event = new Event('mouseover');
document.querySelector('#divId').dispatchEvent(event);
如果它按您的意愿工作,请给我反馈;)
您可以使用触发鼠标悬停事件
document.getElementById('divId').onmouseover();
此外,您还需要将div上mouseover
事件的callback
函数与id='divId'
绑定,并在回调中更改div
的可见性。
希望这能帮助