小编cat*_*eye的帖子

是否允许多个元素都包含addEventListener?

我希望只有在单击正确的按钮时才调用指定的函数.

function callback(func){
func();
}
Run Code Online (Sandbox Code Playgroud)

主要功能及其结果:

尝试A:

document.addEventListener('DOMContentLoaded', function () {

document.getElementById('num1').addEventListener('click', callback(function1));
document.getElementById('num2').addEventListener('click', callback(function2));

});
Run Code Online (Sandbox Code Playgroud)

结果:打开页面并单击任何按钮将运行function1

尝试B:

document.addEventListener('click', function () {

document.getElementById('num1').addEventListener('click', callback(function1));
document.getElementById('num2').addEventListener('click', callback(function2));

});
Run Code Online (Sandbox Code Playgroud)

结果:单击页面上的任意位置将运行function1

尝试C:

document.getElementById('num1').addEventListener('click', callback(function1));
document.getElementById('num2').addEventListener('click', callback(function2));
Run Code Online (Sandbox Code Playgroud)

结果:打开页面并单击按钮将运行function1并重新加载页面

尝试D:

document.addEventListener('click', function () {

//The first ID doesn't exist
document.getElementById('imaginaryNum1').addEventListener('click', callback(function1));
document.getElementById('num1').addEventListener('click', callback(function1));
document.getElementById('num2').addEventListener('click', callback(function2));

});
Run Code Online (Sandbox Code Playgroud)

结果:单击页面上的任意位置将运行function1

尝试E:

//The first ID doesn't exist
document.getElementById('imaginaryNum1').addEventListener('click', callback(function1));
document.getElementById('num1').addEventListener('click', callback(function1));
document.getElementById('num2').addEventListener('click', callback(function2));
Run Code Online (Sandbox Code Playgroud)

结果:打开页面并单击按钮将运行function1并重新加载页面

javascript delegation event-handling

0
推荐指数
1
解决办法
3833
查看次数

标签 统计

delegation ×1

event-handling ×1

javascript ×1