返回元素onmouseover

时间:2013-08-06 12:39:35

标签: javascript dom return element

我想在悬停时修改一个元素,这不能用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>

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

1 个答案:

答案 0 :(得分:1)

你的内联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变量。