为什么 select 标签在 Chrome 和 Safari 中的点击事件处理方式不同?

为什么 select 标签在 Chrome 和 Safari 中的点击事件处理方式不同?

select 标签在 chrome safari 浏览器中的事件处理差别

在前端开发中,使用 select 标签时,发现了一个不同的行为:在 Google Chrome 浏览器中,可以为 select 标签绑定 click 事件处理程序,并在用户点击标签时触发事件;然而,在 Apple Safari 浏览器中,无法触发该事件。

这是一个代码示例,用于在 click 事件触发时向服务器发送请求:

$(document).on('click', '#first_tower_select', function () {
  let project_id = $("#first_project_select").val();
  if (project_id) {
    getBuilding(project_id);
  }
});

Chrome 浏览器中,上述代码可以正常运行,当用户点击 #first_tower_select 标签时,会触发事件并执行 getBuilding() 方法。但在 Safari 浏览器中,点击该标签不会触发任何事件。

解决这个问题的一种方法是使用 onfocus 事件替代 onclick 事件。这是修改后的代码:

$(document).on('focus', '#first_tower_select', function () {
  let project_id = $("#first_project_select").val();
  if (project_id) {
    getBuilding(project_id);
  }
});

以上就是为什么 select 标签在 Chrome Safari 中的点击事件处理方式不同?的详细内容,更多请关注其它相关文章!