选择标记onchange不适用于移动设备
Select tag onchange not working on mobile
我正在选择标签上设置一个onchange事件,如下所示:
Dictionary.prototype.setSelectEvent = function setSelectEvent() {
var selects = document.querySelectorAll('.dictionary-page__select');
if (selects) {
for (var i = 0; i < selects.length; i++) {
selects[i].onchange = function() {
this.onChange();
}.bind(this);
}
}
};
这在桌面上运行良好。事件已正确设置并激发,没有任何错误。在移动设备上,事件根本没有被启动。我也试过使用onblur,但没有效果。使用普通javascript,如何在select标记上设置事件并使其在移动设备上工作?
解决方案:第三方库覆盖桌面事件,但不覆盖移动事件。必须在事件中传递select对象。
Dictionary.prototype.setSelectEvent = function setSelectEvent() {
var selects = document.querySelectorAll('.dictionary-page__select');
var that = this;
if (selects) {
for (var i = 0; i < selects.length; i++) {
selects[i].onchange = function() {
that.onChange(this);
};
}
}
};
Dictionary.prototype.setSelectEvent = function setSelectEvent() {
var selects = document.querySelectorAll('.dictionary-page__select');
for (var i = 0; i < selects.length; i++) {
selects[i].onchange = this.onChange.bind(this);
}
};
前面的代码应该做您想要做的事情,在NodeList上集成它,直到selects.length
。您还将注意到,您可以直接绑定到this
,我们不需要每次在Dictionary
上调用onChange
方法时都定义一个新的onChange函数。
编辑:删除了对数组的转换。
相关文章:
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- PHP中的setcookie仅适用于localhost
- html5 drawImage适用于firefox,而不是chrome
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- ResolveUrl是否适用于././也
- Firebase updateChildValues适用于IOS,但不适用于Web和Android
- JavaScript警报适用于int,但不适用于string
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- Regex Replace仅适用于Last Match
- window.onload适用于aspx页面,但不适用于普通html
- Jquery Ajax POST不工作.适用于GET
- 画布上的自定义字体仅适用于safari
- Javascript仅适用于alert()和Debug模式
- JS适用于Firefox和Safari,但不适用于Chrome.此处'是我的网站
- Regex不适用于Firefox,但适用于Chrome
- 通过单击主菜单外部关闭子菜单'不适用于IE,但适用于Firefox&铬
- AngularJS$http.post没有'不适用于Chrome,仅适用于IE
- 移动隐藏菜单适用于jsfiddle,但不适用于在线.任何解决方案都会有所帮助
- 如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前