外部点击时关闭菜单不仅在 Firefox 中有效?



$(function closeMenu() {
	$('.list-item').removeClass('activeItem');
	$('.showSubMenu').removeClass('showSubMenu');
	$('input[type=checkbox]').prop('checked', false);
	$('#burger').removeClass('change');
	});
$('html').on('click', function(e) {
	     closeMenu(); 
	});
	$('.list-item, .showSubMenu, #burger, #menuToggle').click( function(e) {
	    e.stopPropagation();
	});

此JS在Chrome(桌面和移动设备(和Safari(仅限桌面(中关闭外部点击时关闭响应式菜单,但不能关闭Firefox??怎么了?语法错误?任何智慧都值得赞赏。

在此处查看完整的代码:(在Chrome和Safari桌面中工作(:http://cardscreative.com/cc2017/test444.html

试试这个

$(document).on('click','body *',function(){
         closeMenu(); 
});

看起来body只占用了您的搜索栏在Mozilla中的部分,因此,如果您单击其他任何地方,它不会注册为单击了body。如果将body设置为height: 100%则它似乎有效。

查看您发布的示例站点的 JavaScript (http://cardscreative.com/cc2017/test444.js(,有以下代码:

$(document.body).on('click', function(e) { ... }

对于 Firefox,文档正文仅占据其内容的整个高度,而不是窗口的完整高度。因此,此功能不会附加到在内容<body>之外发生的单击事件。在示例网站中,内容正文由导航栏组成。

可以通过以下更改来解决此问题:

$(document).on('click', ...

此更改会将函数附加到文档中的所有单击,而不仅仅是正文。

(另外,你的问题说$('html').on('click', ....您应该更新您的问题以反映网站的JavaScript。

相关内容

最新更新