我正在尝试使用jquery模拟悬停但是在另一个元素上。
基本上我的幻灯片放在下面......
<div id="slideshow">
...
</div>
我有这些设置......
var slider = $('#slideshow').bxSlider({
autoHover: true
})
这些设置只会在<div id="slideshow">
悬停时暂停幻灯片放映。你推出时幻灯片开始播放。
我的问题是,无论如何都要在<div id="slideshow">
上模拟悬停操作,而是在下面这个元素悬停/进出时?
<div id="slideshow-custom-nav">
... // When this element is hovered in/out, I need it to pause/continue the slideshow. So by simulating a hover on the #slideshow div, this should work hopefully.
</div>
任何建议都会非常棒!感谢
答案 0 :(得分:0)
理论上,是的。您必须使用jQuery的.trigger()
方法手动触发悬停事件。
我自己没有使用bxSlider,但我相信您必须找到插件是否触发自定义事件,以便在调用.trigger()
<强>更新强>
好的,在快速查看GitHub上的bxSlider代码后,我发现它在整个插件代码中使用了普通事件。正如您在line 770所看到的,该插件正在为mouseenter
元素(line 90定义mouseleave
和el
事件的处理程序定义)。
所以,作为一个有根据的猜测,你可能会尝试在你认为合适的地方自己触发这些事件。类似的东西:
$('#slideshow-custom-nav').on('mouseenter', function(){
$('#slideshow').trigger('mouseenter');
}).on('mouseleave', function(){
$('#slideshow').trigger('mouseleave');
});