我想在悬停时修改一个元素,这不能用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吗?
答案 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
变量。