jquery div正确地打开/关闭隐藏的div

这个问题在这里已经有了答案:

  • 如何检测元素外的点击? 76个答案

  • $(document).click(function (eventObj) {
        if (eventObj.target.id != "help-icon") {
            $("#help-menu").hide();
        } else {
            $("#help-menu").toggle();
        }
    });
    

    编辑:如果你想单击出现的div而不会再隐藏它:

    $(document).click(function(eventObj)
    {
        if (eventObj.target.id == "help-icon") {
            $("#help-menu").toggle();
        } else if($(eventObj.target).hasClass("help-dropdown"))  {
            $("#help-menu").show();
        } else {
            $("#help-menu").hide();
        }
    
    
    });
    

    在我的测试中,mouseup函数在点击函数之前触发。 mouseup函数检查事件的目标。 当你点击按钮时,mouseup事件的目标是按钮,所以mouseup函数隐藏div,然后点击函数触发并将div切换回可见状态。

    我会做的只是在mouseup中检查事件的目标并跳过点击事件:

    $(document).mouseup(function (e)
        {
            var hlpcont = $("#help-menu");
            var hlpIcon = $("#help-icon");
            if(hlpIcon.is(e.target)){
                hlpcont.toggle();
            }else
                {
                  hlpcont.hide(); 
                }
    
        });
    
    链接地址: http://www.djcxy.com/p/14721.html

    上一篇: Jquery div to open/close hidden div properly

    下一篇: how to add jQuery click event using xPath?