Javascript点击/触摸开始并不总是有效
Javascript click / touchstart not always working
我的网站顶部有一个语言选择器,当我点击它时,它应该显示所有语言,当我点击正文时,它应该消失。现在我遇到的问题是,有时它只是完美地工作,但有时它根本不起作用。在我的手机上,它经常不起作用。
这是随机发生的,每次刷新网站都会使其再次工作。
$('.topHeader ul li ul').hide();
$('html').on('click touchstart', function() {
$('.topHeader ul li ul').hide();
});
$('.topHeader').on('click touchstart', function() {
event.stopPropagation();
});
$('.topHeader ul li a').on('click touchstart', function() {
$('.topHeader ul li ul').toggle();
});
Jsfiddle:https://jsfiddle.net/5gcdsjox/
我没有使用引导程序,我只是使用了一些类;)
问题是列表项占据了页面宽度的 100%,并且您没有意识到您正在单击它们而不是html
选择器包含的区域。
只需添加这个 css,它就会说明我的意思......
.topHeader ul li ul li {
background:azure;
}
一个快速的解决方法是,通过单击列表项,您还可以隐藏显示的项目:
$('html').on('click touchstart', function() {
$('.topHeader ul li ul').hide();
});
// I have added this extra handler
$('.topHeader ul li ul li').on('click touchstart', function() {
$('.topHeader ul li ul').hide();
});
编辑的jsfiddle:https://jsfiddle.net/0j9h1r2m/1/
相关文章:
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何使用Node.js最有效地解析网页
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 有效形式-始终只显示1个错误[角度]
- 如何添加类,同时开始在文本字段中输入文本
- Javascript袖珍参考,第121页:这是怎么回事;猴子补丁”;方法应该有效
- 单击仅在第二次单击后有效
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 为什么自我执行匿名有效
- D3.js生成有效的SVG,但不显示任何内容
- 如何在AngularJS中有效地检查日期是否有效
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- 滚动在Chrome中有效,但在Firefox或IE中无效
- ng模型内的ng重复的ng重复开始
- 有效地获取两个区间之间的随机整数
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- Javascript点击/触摸开始并不总是有效
- Jquery切换仅在元素开始可见时有效
- 使用javascript验证表单,我有开始和结束日期选择器,它应该只允许当前日期和有效时间,而不允许第二天