JavaScript 一次性在多个元素上注册事件类型

标签 javascript jquery events bind accessibility

有没有办法(natvie JS 或 JQuery)在元素列表上注册相同的事件类型?

如果可能的话,我想避免在多个元素上重复注册一个事件,一次一个。

理想(伪)代码:

$({elem1, elem2, elem3}).on("keyup", function() {
    // Do the same when each one of these elements gets focus
});

最佳答案

使用 jQuery:

对于缓存的元素引用,您可以使用 add :

$(elem1).add(elem2).add(elem3).on("keyup", function() {
    // Do the same when each one of these elements gets focus
});

或者,通过类名等选择多个元素:

$(".one, .two, .three").on("keyup", function() {
    // Do the same when each one of these elements gets focus
});

如果您有缓存元素引用的动态数组:

var cache = [elem1, elem2, elem3]; // could be any length, added to dynamically etc...

var $collection = $(); // new empty jQuery object

// add each item to the jQuery object
for(var i = 0; i < cache.length; i++) {
    $collection = $collection.add(cache[i]);
}

$collection.on("keyup", function() {
    // Do the same when each one of these elements gets focus
});

关于JavaScript 一次性在多个元素上注册事件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20378421/

相关文章:

javascript - jQuery(userInput) "safe"适合最终用户吗?

javascript - 如何在使用 jquery/css 动态显示周围元素的同时保持当前屏幕位置

c# - 显式调用事件

javascript - 根据 mongodb 中的字段对文档进行分组和收集

javascript - 如何使用 axios/jest 测试失败的请求

javascript - 使用附近的 0.05 的自定义舍入数字

javascript - 如何使用 JavaScript 突出显示包含数组中关键字的所有链接

javascript - ajax获取数组项中的元素

javascript - 使用 jQuery 在 iF​​rame 元素上定义事件

javascript - react : e. 目标。?日志未定义