Jquery 当鼠标移出时尝试鼠标移出
我正在尝试为我正在创建的下拉菜单专门创建一个事件。如果它是可见的Jquery 当鼠标移出时尝试鼠标移出,jquery,Jquery,我正在尝试为我正在创建的下拉菜单专门创建一个事件。如果它是可见的。则(“:visible”),除菜单本身外,单击的任何位置都将关闭它 ---编辑--- 这是不起作用的。另一个代码运行良好。并且.on()工作得很好,但是下面的代码没有满足我的需要 $(document).on("mouseout", "#menuPopUp", function(){ $(document).on("mousedown", function(){ $("#menuPopUp").hide();
。则(“:visible”)
,除菜单本身外,单击的任何位置都将关闭它
---编辑---
这是不起作用的。另一个代码运行良好。并且.on()
工作得很好,但是下面的代码没有满足我的需要
$(document).on("mouseout", "#menuPopUp", function(){
$(document).on("mousedown", function(){
$("#menuPopUp").hide();
});
});
我试图在单击除自身以外的任何内容时隐藏菜单操作。您是否尝试过这种方法:
$(document).on("mousedown", "#headerPicMenu", function() {
if ($("#menuPopUp").is(":visible")) {
$("#menuPopUp").hide();
} else {
$("#menuPopUp").show();
}
});
$(document).on("mouseout", "#menuPopUp", function() {
if ($("#menuPopUp").is(":visible")) {
$("#menuPopUp").hide();
} else {
$("#menuPopUp").show();
}
});
$("#menuPopUp").on('mousedown', function() {
$(this).mousedown();
});
更新了答案和小提琴。尝试在mouseover/mouseout上添加/删除一个类,然后在click事件中测试它;大致如下:
$("#menuPopUp").mouseover(function() {
$(this).addClass("menuover");
});
$("#menuPopUp").mouseout(function() {
$(this).removeClass("menuover");
});
$(document).on("mousedown", function(){
if($("#menuPopUp").is(":visible") && !$("#menuPopUp").hasClass("menuover")) {
$("#menuPopUp").hide();
}
});
您可以使用if条件代替警报。如何使用?我已经完成了
$(document).on(“mousedown”,function(){})代码>之前,它没有工作。请注意,我说过我希望在点击除弹出菜单以外的任何东西时该框消失。更新了答案。这是你想要的吗?或者如果你为它做一把小提琴就好了。这对查看您的代码情况更有用。部分原因是,如果单击了任何内容,我希望它消失,但我有,这只是出于某种原因,单击没有注册,可能是因为我做错了什么。请发布一些html或只是编辑它。阅读我的文章,我认为我的问题措辞可能会引起混乱。这可能是你需要的。