我有一个select标签,在change
上有一个eventListener。
现在我还有两个不同的按钮可以改变它,使用:
(selectTag).selectedIndex++;
以上是我想要实现的目标,但它不会在change
上调用我的函数回调。
我该怎么做呢?欢迎其他方法。
我更喜欢纯JS解决方案,(请不要请JJery)。
答案 0 :(得分:3)
在按钮上调用点击处理程序时,只需trigger 更改事件:
var select = document.querySelector("select");
var button = document.querySelector("button")
select.addEventListener("change", function (e) {
alert(e.target.value)
});
button.addEventListener("click", function () {
var event;
try {
event = new Event("change")
} catch (e) {
event = document.createEvent("Event");
event.initEvent("change", true, false);
}
select.selectedIndex++;
select.dispatchEvent(event);
});
更新:我已经在IE 10中修改了它的工作,可能还有其他一些。