gpt4 book ai didi

javascript - 选择 onchange 标签不适用于移动设备

转载 作者:行者123 更新时间:2023-12-03 06:57:42 25 4
gpt4 key购买 nike

我正在选择标签上设置 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,但没有任何效果。使用 vanilla javascript,如何在选择标签上设置事件并使其在移动设备上工作?

解决方案:第三方库覆盖了桌面事件,但不覆盖移动事件。必须在事件中传递选择对象。

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。您还会注意到,您可以直接绑定(bind)到 this,我们不需要每次在 Dictionary 上调用 onChange 方法时都定义一个新的 onChange 函数.

编辑:删除了到数组的转换。

关于javascript - 选择 onchange 标签不适用于移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37199270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com