$(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。