点击Mobile Safari中的<label>

Vik*_*tor 33 javascript forms ios

点击<label>不会在Mobile Safari中自动对焦链接但是如果像这样定义了一个像clickhandler这样的空函数

document.getElementById("test_label").onclick = function () {};
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.

这是完整的源代码.

<body>
    <input type="checkbox" id="test" name="test">
    <label for="test" id="test_label">This is the label</label>
    <script>
      document.getElementById("test_label").onclick = function () {};
    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

你知道它为什么有效吗?

mai*_*kel 41

使用FastClick的人:

使用这个CSS:

label > * {
    display: block;
    pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)

看到这个问题:https://github.com/ftlabs/fastclick/issues/60

这个codepen:http://codepen.io/visnup/pen/XJNvEq


小智 24

我们只需将这一行代码添加到我们的全局javascript文件中,就可以在Etsy解决这个问题.

$('label').click(function() {});
Run Code Online (Sandbox Code Playgroud)

我们正在使用xui micro js库,该行只是将空单击处理程序附加到所有label元素.出于某种原因,这神奇地修复了移动游猎的问题.

  • 在iOS 7上,我仍然遇到类似的问题.无法点击`click`来触发`label`标签.奇怪而且非常令人沮丧. (2认同)

s4y*_*s4y 15

您好像在iOS Safari中发现了一个错误.恭喜!查找和报告错误会让人上瘾.

您可以通过https://bugreport.apple.com/向Apple报告此错误和其他错误.Apple可能不会立即跟进,但在将来的某个时候,他们应该通知您它是现有错误的副本,他们不认为这是一个错误,或者(如果你很幸运)你应该测试它再次出现在iOS的新版本中.

同时,坚持这个变通方法 - 你需要它.

  • 真?您不能是Web开发人员;) (4认同)
  • 好极了!我喜欢Safari :) (3认同)

小智 5

<label for="myID" onclick="">
  <input type="checkbox" id="myID" name="myNAME">
  <span class="name-checkbox"> My name for my checkbox </span>
  <span class="some-info">extra informations below</span>
</label>
Run Code Online (Sandbox Code Playgroud)

要在标签标签上的任何位置启用iOS,您需要添加到其直接子节点(期望输入),指针事件:无;

.name-checkbox, .some-info {
      pointer-events: none;
    }
Run Code Online (Sandbox Code Playgroud)