Javascript-向数组中的所有项添加事件侦听器
我无法将事件侦听器应用于我创建的数组中的所有项。我在这里看过很多其他相关的帖子,但似乎没有一篇能涵盖我的确切情况 我知道for循环正在工作,因为我正在将它注销到控制台,并且可以看到每次迭代都会弹出。我甚至可以在控制台中看到事件监听器已应用于每个迭代,但在页面上的元素上实际鼠标移动时不会触发 有没有关于我可能遗漏什么的线索?完整的代码如下 同样,数组中的每个元素都是目标,我可以验证是否应用了侦听器,但它不会在鼠标悬停时触发 提前感谢您的建议 因此,每当鼠标移到p中的任何元素上时,都会调用addRedClass函数。这很好 现在让我们看看这个函数: 您可以修改p的类名 它是元素对象的非活动节点列表 在您创建className属性之前,它没有className属性 可能要使用this.className或在p上循环并重复使用p[i].className 因此,每当鼠标移到p中的任何元素上时,都会调用addRedClass函数。这很好 现在让我们看看这个函数: 您可以修改p的类名 它是元素对象的非活动节点列表 在您创建className属性之前,它没有className属性Javascript-向数组中的所有项添加事件侦听器,javascript,Javascript,我无法将事件侦听器应用于我创建的数组中的所有项。我在这里看过很多其他相关的帖子,但似乎没有一篇能涵盖我的确切情况 我知道for循环正在工作,因为我正在将它注销到控制台,并且可以看到每次迭代都会弹出。我甚至可以在控制台中看到事件监听器已应用于每个迭代,但在页面上的元素上实际鼠标移动时不会触发 有没有关于我可能遗漏什么的线索?完整的代码如下 同样,数组中的每个元素都是目标,我可以验证是否应用了侦听器,但它不会在鼠标悬停时触发 提前感谢您的建议 因此,每当鼠标移到p中的任何元素上时,都会调用add
可能要使用this.className或在p上循环并重复使用p[i].className 您需要在addRedClass函数上具有正确的作用域
var addRedClass = function() {
this.className = this.className + " red-text";
};
通过使用this.className,可以引用鼠标悬停的标记
您不需要在changeHeader函数中使用它的原因是因为变量h只包含header节点。然而,变量p包含一个节点列表,它不是对节点的单一引用。因此,当addEventListener启动时,它将把您鼠标移到的标记作为作用域传递给addRedClass。这就是为什么这样做可以更改类名。您需要在addRedClass函数上具有正确的作用域
var addRedClass = function() {
this.className = this.className + " red-text";
};
通过使用this.className,可以引用鼠标悬停的标记
您不需要在changeHeader函数中使用它的原因是因为变量h只包含header节点。然而,变量p包含一个节点列表,它不是对节点的单一引用。因此,当addEventListener启动时,它将把您鼠标移到的标记作为作用域传递给addRedClass。这就是为什么这样做可以更改类名。p在DOM中可能没有通过CSS的维度来允许鼠标覆盖。p在DOM中可能没有通过CSS的维度来允许鼠标覆盖。太棒了!这把它修好了。谢谢你的洞察力!明亮的这把它修好了。谢谢你的洞察力!
p.className = p.className + " red-text";
var addRedClass = function() {
this.className = this.className + " red-text";
};