Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 鼠标隐藏元素?_Jquery - Fatal编程技术网

Jquery 鼠标隐藏元素?

Jquery 鼠标隐藏元素?,jquery,Jquery,我有以下代码 $("#nav-mail").mouseenter(function(){ $("#dropdown_mail").show(); }); $("#dropdown_mail,#nav-mail").mouseleave(function(){ $("#dropdown_mail").hide(); }); 我正试图用它创建一个下拉列表,但是当我离开“导航邮件”区域时,“下拉列表”邮件会隐藏,这不起作用,因为我需要能够在不关闭的情况下从“导航邮件”移动到“下拉列表”

我有以下代码

$("#nav-mail").mouseenter(function(){
  $("#dropdown_mail").show(); 
});

$("#dropdown_mail,#nav-mail").mouseleave(function(){
  $("#dropdown_mail").hide(); 
});
我正试图用它创建一个下拉列表,但是当我离开“导航邮件”区域时,“下拉列表”邮件会隐藏,这不起作用,因为我需要能够在不关闭的情况下从“导航邮件”移动到“下拉列表”邮件

那么,我怎样才能让它允许我从导航邮件横穿到下拉邮件,只有当它的鼠标将两者都移除时才能关闭

HTML



鼠标指针
更改为
鼠标指针
,并在隐藏前设置一个
超时时间
。如果用户仍在该区域上方,则将删除
超时。例如

var MailTimeout;

function hideMailDropdown() {
  $("#dropdown_mail").hide();
  clearTimeout(MailTimeout);
}

$(document).ready(function() {
  $("#nav-mail").mouseover(function(){
    $("#dropdown_mail").show();
    clearTimeout(MailTimeout);
  });

  $("#dropdown_mail,#nav-mail").mouseleave(function(){
    var MailTimeout=setTimeout("hideMailDropdown()",500); /* Wait half a second before hiding */
  });
});

你有HTML结构吗?如果#dropdown#u mail是#nav mail的子项,它将不会关闭。如果它不是子项,我该如何关闭它?因为在结束之前不是第3行,所以MailTimeout已经在文件的顶部声明。如果重新声明,则hideMailDropdown()无法停止setTimeout。只需删除“var”
var MailTimeout;

function hideMailDropdown() {
  $("#dropdown_mail").hide();
  clearTimeout(MailTimeout);
}

$(document).ready(function() {
  $("#nav-mail").mouseover(function(){
    $("#dropdown_mail").show();
    clearTimeout(MailTimeout);
  });

  $("#dropdown_mail,#nav-mail").mouseleave(function(){
    var MailTimeout=setTimeout("hideMailDropdown()",500); /* Wait half a second before hiding */
  });
});