当我的页面加载时,我想在我的菜单项'#currentitem a'
上触发一个mouseenter。我已经完成了:
$(document).ready(function(){
$("#currentitem a").trigger('mouseenter');
});
我的问题是,如果我mouseenter(手动)另一个项目,触发(上面的代码)项目不会鼠标移动。菜单项重叠。
我是新手,如果有可能,我想实现以下目标?
'#currentitem a'
。'#currentitem a'
当另一个项目触发了mouseenter时。'#currentitem a'
以便在没有别的情况下始终触发该项目。菜单是更复杂的jQuery设置的一部分,而不仅仅是简单的CSS,所以这是我能看到的最佳方式。任何帮助将不胜感激。
我现在已经创建了一个JSFiddle来显示我想要做的事情:
答案 0 :(得分:0)
这是值得尝试的事情
$(function(){
$('#currentitem a').trigger('mouseenter');
$('.currentitem a').on('mouseenter', function(e) {
if ($('.currentitem a:focus').length > 0) {
$('.currentitem a:focus').blur();
}
});
});
如果这不起作用,请告诉我,我会调整它。
编辑:
查看完编辑后,我可能已找到您的问题
使用jQuery定位元素时,id属性应仅在DOM中使用一次。假设你的html确实如此,我猜的下一件事就是当你输入一个不同的项目时(例如你列表中的下一个li)你没有听。如果是这样,您只需要监听其他li元素上的mouseenter
事件。
最后,如果您正在倾听这些事件但他们无法正常工作,那么他们可能会为您工作。该活动为mouseover
中期修改更新:
如果你在谈论菜单没有隐藏当你直接鼠标“我们的项目”而没有点击任何其他内容时,那是因为鼠标永远不会“进入”元素所以它不会隐藏自己,周围的方式很简单:
$("#mydroplinemenu > ul > li[id!='currentitem'] > a").one('mouseenter', function(e) {
$('#currentitem a').trigger('mouseleave');
});
我的事件的选择器仅定位非#currentitem的链接元素,并且每个链接只触发一次。这可能就是你想要的!我在你的jsfiddle上测试了它确实有效。