返回mouseover上的元素

Return the element onmouseover

本文关键字:元素 mouseover 返回      更新时间:2023-09-26

我想在悬停时修改一个元素,这不能用css完成,因为我想使用计时器来增加悬停元素的嵌入阴影。

所以我在javascript:中尝试了这个函数

var element;
function hover(hoveredElement)
{
   element = hoveredElement;
   setInterval(changeBack, 100);
}
function changeBack()
{
  element.style.boxShadow = .... ;
}

html:

<li class="span1" id="s1_1" onmouseover="hover(this.id);">...</li>

但是我得到一个错误,说元素没有定义。是否有其他只使用JavaScript传递id的方法?

您的内联onmouseover正在传递元素的id,而它本应传递对元素本身的引用。试试这个:

onmouseover="hover(this);"

此外,您还可以选择删除全局element变量:

function hover(hoveredElement) {
   setInterval(function() {
      hoveredElement.style.boxShadow = .... ;
   }, 100);
}

或者,如果你想将其他功能分开:

function hover(hoveredElement){
   setInterval(function(){ changeBack(hoveredElement); }, 100);
}
function changeBack(element){
   element.style.boxShadow = .... ;
}

无论哪种方式,都意味着您可以将onmouseover="hover(this);"应用于多个元素,而不需要它们共享相同的全局element变量。