You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

addEventListener在Google Chrome中绑定点击事件不生效求助

问题根源

你当前代码失效的核心原因是给<option>标签绑定click事件的写法不符合Web标准:

  • 仅Firefox浏览器单独做了兼容,支持响应<option>元素上的click事件
  • Chrome、Edge、Safari等Chromium/WebKit内核浏览器,都不会触发<option>元素上绑定的click事件,也不会抛出相关错误

这个问题和你是否将JS作为外部文件引入、是否使用window.addEventListener绑定事件没有任何关系,这也是你之前尝试的方案全部无效的原因。

兼容全浏览器的实现方案

不要给单个<option>元素绑定事件,直接监听父级<select>元素的change事件即可——用户选中下拉选项时会立即触发该事件,所有主流浏览器都完美支持,性能也比遍历绑定所有option更好。
你的HTML代码不需要做任何调整,直接替换JS代码为以下内容即可:

const selectDom = document.getElementById('selections');
selectDom.addEventListener('change', function() {
    // 获取当前选中项的文本内容,和你原代码中取innerHTML的逻辑一致
    const selectedPlanName = this.options[this.selectedIndex].textContent;
    console.log(selectedPlanName);
    retrieveplans(selectedPlanName);

    // 如果你需要获取选中项的value属性(比如plan1/plan2),直接用this.value即可获取
    // const selectedPlanValue = this.value;
})
补充说明

原生下拉选择控件的事件派发逻辑是:用户点击展开下拉、点击选项的交互事件,默认都是绑定在<select>元素上的,浏览器不会把点击事件派发给内部的<option>子元素,不要在option元素上绑定鼠标、点击类交互事件。

内容的提问来源于stack exchange,提问作者Vaibhav Vishwakarma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:45:31