何时应该使用 on* DOM 属性与 on* HTML 属性

When should I use on* DOM properties vs on* HTML attributes?

本文关键字:属性 on HTML DOM 何时应      更新时间:2023-09-26

所以我可以选择使用下面的 2 个实现来跟踪单击了哪个 li 元素。 第一个只是一个

选项 1:

var ul = document.getElementById('inputField');
ul.onkeyup= function (event) {
    var target = getEventTarget(event);
    var userInput = target.value;
    alert(userInput );
};

选项 2:

<input id="inputField" onkeyup="alert(userInput)" />

我知道在上面的情况下,较短的更有吸引力。 但是,如果我计划使用多个输入字段,选项 1 更具吸引力,因为我不必为每个输入字段的每个属性编写代码。 我的问题是... 有没有一种方法比另一种方法皱眉?

两者都同样糟糕,并且不受欢迎(就像使用jQuery一样)。使用addEventListener .

ul.addEventListener("keyup", function () {
    // callback
});

如果您想与较旧的浏览器兼容,请添加一个包装器,该包装器检查addEventListener并回退到attachEvent