Android浏览器复选框标签不可点击
Android browser checkbox label not clickable
我正在开发一个基于复选框破解的响应css菜单
html:
<input type="checkbox" id="button" />
<label for="button" onclick>click / touch</label>
<div>
Change my color!
</div>
css:
/* Advanced Checkbox Hack */
body { -webkit-animation: bugfix infinite 1s; }
@-webkit-keyframes bugfix { from {padding:0;} to {padding:0;} }
input[type=checkbox] {
position:absolute;
top:-9999px;
left:-9999px;
}
label {
cursor: pointer;
user-select: none;
}
div {
background-color: #00F;
}
/* checked */
input[type=checkbox]:checked ~ div {
background-color: #F00;
}
它运行良好,有效的html5,并在windows和linux桌面(FF、IE、Opera、Konquerer、Chrome、Maxthon)上成功测试,我甚至为IE8想出了一个简短的(基于JS的)破解。当我在Android 4.1.1平板电脑上测试时,菜单不会打开,但与IE8不同的是,问题不是伪类:checked
,而是
- 点击关联的复选框标签不会切换复选框状态,并且
- JS快速修复程序模拟点击设置/取消设置复选框不起作用,因为浏览器将一次点击视为两次点击
不适用于android:
$('label').click(function(e) {
e.preventDefault();
// alert(navigator.userAgent);
$("input#button").trigger('click');
});
为了保持理智,我测试了
$('label').click(function(e) {
e.preventDefault();
// alert(navigator.userAgent);
$("input#button").prop("checked",true);
});
这是有效的,但当然只设置复选框,从不取消设置。
我尝试了使用时间戳的JS变通方法,但无法使其发挥作用。
最让我困惑的是,上述复选框破解示例适用于上述平板电脑,但我的菜单(未发布)或这个带有复选框的简单表单不会更改标签点击时的复选框。
你知道我哪里错了吗?或者如何让android 4.1.1设置/取消设置复选框而不在标签中嵌套复选框(我需要同一个复选框有多个标签)?我可以使用JS解决方案,即使重点是只使用CSS。感谢
我最终使用了这个解决方法:
$('.touch .menu label').on('tap', function(e) {
e.stopPropagation();
e.preventDefault();
var hID = $(this).prop('for');
$("input#"+hID).trigger('click'); /* not tap */
});
tap事件源于tocca.js,但也适用于click。
相关文章:
- 在谷歌浏览器中,标签之间最快的通信是什么
- 可以'不要让HTML5音频标签在移动浏览器上工作
- 在谷歌浏览器中用程序固定一个标签
- 谷歌浏览器移动模拟器:如何强制它在模拟器中也打开新标签
- 让谷歌浏览器扩展程序只在一个标签上工作
- 如何在使用谷歌浏览器开发者控制台时使变量在标签页中可见
- 如何在谷歌浏览器的新标签页中打开页面中的链接
- 如何从IE浏览器中的输入文件标签中获取javascript中的文件名
- 如何在 javascript 中调用输入文件标签 在 safari 浏览器中
- 在新的浏览器标签页中显示 json
- Chrome 标签页的永久唯一 ID,在浏览器会话之间持续存在
- 谷歌浏览器的“新标签”iframe如何工作
- 在内容可编辑元素上按 Enter 时插入 BR 或 P 标签的跨浏览器方式
- Chrome 在标签页(或浏览器)关闭时打开卸载前事件
- 不要打开新标签页、关闭标签页或关闭浏览器窗口
- 如何使用javascript或jQuery在浏览器中拖放交叉标签
- 浏览器通过浏览器扩展程序通过文件输入标签自动选择文件
- 将自定义用户代理关联到特定的谷歌浏览器页面/标签页
- 检测关闭标签/浏览器没有消息等
- 如何隐藏标签浏览器和获取其内容