如果没有触发其他mouseenter事件,则在页面加载时触发mouseenter

当我的页面加载时,我想在我的菜单项'#currentitem a'上触发一个'#currentitem a' 。 我做过的事:

 $(document).ready(function(){ $("#currentitem a").trigger('mouseenter'); }); 

我的问题是,如果我mouseenter(手动)另一个项目,触发(上面的代码)项目不会鼠标移动。 菜单项重叠。

我是新手,如果可能,我想实现以下目标?

  1. 在页面加载上'#currentitem a'
  2. 当另一个项目触发了'#currentitem a'时,mouseleave '#currentitem a'
  3. 当该菜单项触发mouseleave时,请输入'#currentitem a'以便在没有其他任何内容时始终触发该项。

该菜单是更复杂的jQuery设置的一部分,而不仅仅是简单的CSS,所以这是我能看到的最佳方式。 任何帮助将非常感激。

我现在已经创建了一个JSFiddle来显示我想要做的事情:

http://jsfiddle.net/qFS84/

这是值得尝试的东西

 $(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上测试了它确实有效。