javascript - 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');
});
}
解决方案
您的代码适用于 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 搞砸了?
推荐阅读
- c# - 用于字符串比较的 Roslyn Analyzer
- android - Flutter Dynamic Icons 未在生产版本中显示
- javascript - LeafletJS 工具提示偏移量取决于 properties.name
- reactjs - 使用 LocalStorage 反应钩子
- ios - 如何在不阻塞主线程的情况下渲染 UIView?
- serverless - 使用无服务器、Bref PHP 和 Slim 进行 CORS 或 base64 编码的二进制响应
- python - ValueError:点不能包含 NaN
- ruby-on-rails - SendGrid 不能在我的应用程序上使用 ruby on rails
- python - 如何从网页抓取中获取所有页面
- flask - 使用 alembic 添加关系 backref order_by