javascript - 选择元素单击时的 JQuery 单击事件在 chrome 中不起作用(在 windows 环境中不会出现问题)
问题描述
当我单击 chrome 中的选择元素时,该事件不会在第一次单击时触发(但在那之后,即第二次、第三次......)。为什么以及如何改变它?(在FF工作)
$("select").click(function() {
console.log("click");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option>a</option>
</select>
https://jsfiddle.net/pv2eajux/
注意:点击文字,而不是箭头
解决方案
恕我直言,在使用选择时,我们可以通过以下方式获得更好的兼容性.focus()
:
$("select").focus(function() {
console.log("click");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option>a</option>
</select>
注意:即使没有抛出错误并且某些浏览器在某些情况下(例如:OS)会触发该事件,规范声明诸如input
支持点击事件的元素:
<Input />
眼镜
interface HTMLInputElement : HTMLElement {
attribute DOMString defaultValue;
attribute boolean defaultChecked;
readonly attribute HTMLFormElement form;
attribute DOMString accept;
attribute DOMString accessKey;
attribute DOMString align;
attribute DOMString alt;
attribute boolean checked;
attribute boolean disabled;
attribute long maxLength;
attribute DOMString name;
attribute boolean readOnly;
// Modified in DOM Level 2:
attribute unsigned long size;
attribute DOMString src;
attribute long tabIndex;
// Modified in DOM Level 2:
attribute DOMString type;
attribute DOMString useMap;
attribute DOMString value;
void blur();
void focus();
void select();
void click();
};
而select
不是:
<Select />
眼镜
interface HTMLSelectElement : HTMLElement {
readonly attribute DOMString type;
attribute long selectedIndex;
attribute DOMString value;
// Modified in DOM Level 2:
attribute unsigned long length;
// raises(DOMException) on setting
readonly attribute HTMLFormElement form;
// Modified in DOM Level 2:
readonly attribute HTMLOptionsCollection options;
attribute boolean disabled;
attribute boolean multiple;
attribute DOMString name;
attribute long size;
attribute long tabIndex;
void add(in HTMLElement element,
in HTMLElement before)
raises(DOMException);
void remove(in long index);
void blur();
void focus();
};
参考:https ://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-94282980
推荐阅读
- python - 如何通过使用 Python 检查文件夹中的项目从远程服务器到本地目录来下载文件夹?
- r - 如何在叠加散点图中显示最佳拟合回归曲线和相应的 R^2?
- mysql-connector - 为什么 Hive Metastore 主机无法加载 mysql 连接器?
- youtrack - 创建指向 YouTrack 中现有问题的(子任务)链接
- vba - 对象尝试将一个单元格连接到上面的单元格时出现必需的错误
- javascript - 带有分子的 Node JS 微服务
- php - 将语言索引放入 URL 多语言 CodeIgniter 站点
- javascript - 当字段依赖于其他字段值时,如何添加不同的 yup 验证。if else-if else 验证
- r - 将 ggplot2 地图旋转到任意角度
- apache-spark - Spark Structured Streaming - 性能优化