gpt4 book ai didi

javascript - 我会动态地将 onmouseover 和 onmouseout 属性添加到 html 页面中的每个 anchor ,但它不起作用

转载 作者:行者123 更新时间:2023-12-01 03:27:31 25 4
gpt4 key购买 nike

当页面加载时,我会动态地将 onmouseover 和 onmouseout 属性添加到 html 页面中的每个 anchor 。

我尝试了所有我知道的方法,但无法让它发挥作用。

HTML

<body onload="init()">

JAVASCRIPT

function init(){
startTimers();
initLinksProperties();
}

function initLinksProperties(){
var onMouseOverColor = 'red';
var onMouseOutColor = '#00BFFF';

var links = document.getElementsByTagName("a");

for(var i = 0; i < links.length; i++){
links[i].onmouseover = function(){ cambiaColore(i, onMouseOverColor); };
links[i].onmouseout = function(){ cambiaColore(i, onMouseOutColor); };
}
}

function cambiaColore(index, color){
var element = document.links[index];
element.style.color = color;
}

我也尝试过:

links[i].onmouseover = cambiaColore(i, onMouseOverColor);
links[i].onmouseout = cambiaColore(i, onMouseOutColor);

links[i].addEventListener('onmouseover', cambiaColore(i, onMouseOverColor));
links[i].addEventListener('onmouseout', cambiaColore(i, onMouseOutColor));

links[i].setAttribute('onmouseover', cambiaColore(i, onMouseOverColor));
links[i].setAttribute('onmouseout', cambiaColore(i, onMouseOutColor));

cambiaColore 是一个更改链接颜色的函数。

我没有语法错误,但什么也没发生。我哪里错了?

最佳答案

在尝试您的代码时,我在此函数中出现“无法读取未定义的属性‘样式’”错误:

function cambiaColore(index, color){
var element = document.links[index];
element.style.color = color;
}

似乎“document.links[index]”没有返回您的元素。

所以我稍微改变了你的函数,而不是将索引作为第一个参数,而是将元素本身作为第一个参数。

function cambiaColore(element, color){
element.style.color = color;
}

在 mouseover 和 mouseout 函数中,我将元素作为第一个参数传递:

function initLinksProperties(){
var onMouseOverColor = 'red';
var onMouseOutColor = '#00BFFF';

var links = document.getElementsByTagName("a");

for(var i = 0; i < links.length; i++){
links[i].onmouseover = function(e){ cambiaColore(e.target, onMouseOverColor); };
links[i].onmouseout = function(e){ cambiaColore(e.target, onMouseOutColor); };
}
}

整个代码:

function init() {
startTimers();
initLinksProperties();
}

function initLinksProperties(){
var onMouseOverColor = 'red';
var onMouseOutColor = '#00BFFF';

var links = document.getElementsByTagName("a");
console.log(links);
for(var i = 0; i < links.length; i++){
links[i].onmouseover = function(e){ cambiaColore(e.target, onMouseOverColor); };
links[i].onmouseout = function(e){ cambiaColore(e.target, onMouseOutColor); };
}
}

function cambiaColore(element, color){
element.style.color = color;
}

关于javascript - 我会动态地将 onmouseover 和 onmouseout 属性添加到 html 页面中的每个 anchor ,但它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44737757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com