jQuery 模拟悬停和单击



我目前正在为一个网站制作插件,但我偶然发现了一个问题:我的插件需要模拟单击div,但仅当您将鼠标悬停在另一个div 上时,div 才会出现。我试过了

$("#id-1").trigger("mouseover");
$("#id-2").click();

但它并没有真正起作用,因为盒子会立即再次消失。

有什么办法可以做到这一点吗?

提前感谢!

编辑:$("#id-2") 不仅不可见,它不再存在于元素中,他们使用一些代码将其删除并在您将鼠标悬停在 $("#id-1") 上时将其放回原位

如果您有权访问 CSS 文件,则可以使用悬停类来执行此操作,假设它们是兄弟姐妹(可以修改为处理父子关系),并且他们使用 display:blockdisplay:hidden 来隐藏/显示隐藏元素

/* CSS */
elemOne:hover ~ div, .hover ~ div { display:block; } // Applies on hover or if 
                                                     // hover class
/* jQuery */
$('elemOne').addClass('hover'); // Initialize the hover state
$('elemTwo').trigger('click');  // Click the now-showing element
$('elemOne').removeClass('hover'); // Remove the hover state

演示

最新更新