jQuery如果元素可见,我做错了什么?

Kyl*_*yle -6 html navigation jquery

我试图检测一个元素是否可见,然后为其分配一个函数:

使用按钮显示菜单按钮后,我想点击任意位置并隐藏meny并重新显示按钮.

if ($('ul.site-nav.actual-navigation').css('display') == 'block') {
    $(document).click(function() {
        $('ul.site-nav.actual-navigation').hide();
        $('button.nav-mobile-switch').show();
    });

}
Run Code Online (Sandbox Code Playgroud)

我也尝试了$('element:visible')$('element').is(':visible')方法.

我在某处读到了psuedo选择器:visible不能使用函数,但是当我点击任何地方时,这里的例子并没有隐藏元素.

我做错了什么?

http://jsfiddle.net/Kyle_Sevenoaks/yuAhb/

SLa*_*aks 5

您只是在首次加载页面时检查可见性.
当菜单实际可见时,没有任何东西再次运行该代码.

相反,您可以立即添加处理程序,但如果该元素不可见,则不要执行任何操作.
或者,您只能在显示元素时添加处理程序,并在隐藏元素时将其删除.