如何使用Javascript更改onmouseover事件?
问题描述:
我有一个HTML跨度其中的onmouseover和onmouseout改变它的类:如何使用Javascript更改onmouseover事件?
<span id="someSpan" class="static" onmouseover="this.className='active'" onmouseout="this.className='static'">Some Text</span>
我希望能够启用和禁用(改变)的onmouseover和onmouseout使用页面上的其他地方称为JavaScript函数的事件。这可能吗?
答
当然。
document.getElementById('someSpan').onmouseover =
function() {
this.className='newactive';
};
答
安全的方法是使用像Prototype或JQuery这样的JavaScript工具箱。
他们都可以轻松做到这一点,但它可以跨浏览器使用。例如,here is how you do it in JQuery。
答
代码:
document.getElementById("someSpan").onmouseover = function()
{
//New code
};//Do not forget the semicolon
答
我会同意的jQuery会更容易,但如果你想坚持到JavaScript的,我相信这应该工作:
的document.getElementById(“elementId “).onMouseOut = functionName;
此外,jQuery的大小约为20Kb(生产框架文件的大小),所以它可能会减慢页面的加载速度。有些事情要考虑,如果您只是将它用于可能在JavaScript中完成的一些事情。
答
是的,你可以做到这一点简单地通过分配给的onmouseover和onmouseout为跨度元素实例的属性,如:
// Define your handler somewhere
function myNewHandler()
{
// ...new logic...
}
// And where you want to swap it in:
document.getElementById('someSpan').onmouseover = myNewHandler;
...但是这是一个相当老式的方法做这个。更现代的方法使用addEventListener或attachEvent(取决于你是在做标准还是IE)来连接事件处理程序。像Prototype,jQuery和其他十几个库可以提供帮助。
谢谢,我想接受这个答案和Jason的。这符合我原型的需要,但我会在后面讨论如何使用JQuery来做到这一点。 – Trastle 2009-08-17 13:57:25