首页 > 解决方案 > Safari 9 - 标签点击不会触发更改事件

问题描述

在 Safari 9 上,通过标签更改单选按钮不会触发警报。你知道原因或解决方法吗?

HTML

<input id="star-1" type="radio" name="question[1]" value="1" required>
<label for="star-1" title="stella 1">
    <i class="active fa fa-star" aria-hidden="true"></i>
</label>
<input id="star-2" type="radio" name="question[1]" value="2" required>
<label for="star-2" title="stella 2">
    <i class="active fa fa-star" aria-hidden="true"></i>
</label>

JS

var inputRadio = document.querySelectorAll('input[type="radio"]');
for (var i = 0; i < inputRadio.length; i++) {
    inputRadio[i].addEventListener('change', function() {
        alert('ciao');
    });
}

标签: javascriptmobile-safari

解决方案


您的代码适用于 Safari 9:

var inputRadio = document.querySelectorAll('input[type="radio"]');
for (var i = 0; i < inputRadio.length; i++) {
  inputRadio[i].addEventListener('change', function() {
    alert('ciao');
  });
}

http://jsfiddle.net/dbmk9xL8/1/ - 这是一个证明它的小提琴。

也许是一些 CSS 搞砸了?


推荐阅读