简体   繁体   English

要知道鼠标是否仍悬停菜单

[英]To know if mouse still hover menu

I have the following menu construction very resumed (cant change HTML code due is impossible, only CSS and JS!): 我有以下菜单构造非常恢复(不能更改HTML代码到期是不可能的,只有CSS和JS!):

 $('span').on("hover", handleHover('span')); function handleHover(e) { $(e).on({ mouseenter: function() { $(this).addClass('selecc'); $(this).next("ul").show(); }, mouseleave: function() { $(this).removeClass('selecc'); $(this).next("ul").hide(); } }); } 
 span { display:block; } ul { background-color:#CCC; color:#000; display:none; margin:0; } .selecc { background-color:Red; color:#FFF } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <span>Option 1</span> <ul> <li>suboption 1-1</li> <li>suboption 1-2</li> <li>suboption 1-3</li> </ul> <span>Option 2</span> <ul> <li>suboption 2-1</li> <li>suboption 2-2</li> <li>suboption 2-3</li> </ul> 

I need to move the mouse over the suboptions but the menu closes and i dont know how to tell to jquery that UL is part of menu group. 我需要将鼠标移到子选项上,但菜单关闭,我不知道如何告诉jquery UL是菜单组的一部分。 Some idea for this? 有点想法吗?

No-one said you cannot alter the HTML dynamically using jQuery :) 没有人说你不能使用jQuery动态改变HTML :)
So, yes, group your SPAN+UL into groups, and attach the hover function to your .group wrapper: 所以,是的,将您的SPAN + UL分组,并将悬停功能附加到您的.group包装器:

jsBin demo jsBin演示

$("span").each(function(){
  var ul = $(this).next("ul");
  $(this).add(ul).wrapAll("<div class='group'/>");
});

$(".group").hover(handleHover);

function handleHover() {
  $("span",this).toggleClass('selecc');
  $("ul",this).stop().slideToggle();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM