2009-08-17 77 views
3

我有一個HTML跨度其中的onmouseover和onmouseout改變它的類:如何使用Javascript更改onmouseover事件?

<span id="someSpan" class="static" onmouseover="this.className='active'" onmouseout="this.className='static'">Some Text</span> 

我希望能夠啓用和禁用(改變)的onmouseover和onmouseout使用頁面上的其他地方稱爲JavaScript函數的事件。這可能嗎?

回答

2

當然。

document.getElementById('someSpan').onmouseover = 
    function() { 
     this.className='newactive'; 
    }; 
+0

謝謝,我想接受這個答案和Jason的。這符合我原型的需要,但我會在後面討論如何使用JQuery來做到這一點。 – Trastle 2009-08-17 13:57:25

1

安全的方法是使用像Prototype或JQuery這樣的JavaScript工具箱。

他們都可以輕鬆做到這一點,但它可以跨瀏覽器使用。例如,here is how you do it in JQuery

0

代碼:

document.getElementById("someSpan").onmouseover = function() 
{ 
    //New code 
};//Do not forget the semicolon 
1

我會同意的jQuery會更容易,但如果你想堅持到JavaScript的,我相信這應該工作:

的document.getElementById(「elementId 「).onMouseOut = functionName;

此外,jQuery的大小約爲20Kb(生產框架文件的大小),所以它可能會減慢頁面的加載速度。有些事情要考慮,如果您只是將它用於可能在JavaScript中完成的一些事情。

1

是的,你可以做到這一點簡單地通過分配給的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和其他十幾個庫可以提供幫助。

相關問題