2014-01-17 5 views
0

Я пишу javascript, который изменит цвет элемента, когда мышь нависает над ним. Я прекрасно знаю, как это сделать, используя jQuery, но на этот раз у I есть, чтобы сделать это, используя либо чистый JS, либо Prototype.Изменить цвет элемента onMouseOver с помощью javascript

Почему это не работает:

<div id="boundary1"></div>

document.getElementById("boundary1").onmouseover(function() { 
    alert("test"); 
}) 

поджигатель возвращает:

TypeError: document.getElementById(...).onmouseover is not a function

ответ

3

Ваш синтаксис не так, вы можете думать немного слишком «Jquery», попробуйте следующее:

var boundary = document.getElementById('boundary'); 
var mouseOverFunction = function() { 
    // this.style.color = '#000'; // your colour change 
}; 
boundary.onmouseover = mouseOverFunction; 

Я отделил логику, чтобы сделать разработку и логику более понятной, она делает свои функции многоразовый.

0

Try:

document.getElementById("boundary1").onmouseover = function() { 
    alert("test"); 
} 

More Info.

+0

Сделал трюк, вы bauss – Ortix92

+0

@ Ortix92: Пожалуйста, отметьте это как принятый ответ, если он сработает для вас. :) –

+0

Мне еще нужно подождать пару минут. Есть ли способ передать выбранный элемент этой функции? – Ortix92

0

Попробуйте этот код

<td onMouseOver="this.bgColor='#00CC00'" onMouseOut="this.bgColor='#009900'" bgColor=#009900> 
<A HREF="#">Click Here</A></TD> 
0

Вы можете сделать это с помощью CSS

<style> 
.changecolour:hover 
{ 
background-color:yellow; 
} 
</style> 

Теперь текст, который вы хотите изменить цвет

<span class ="changecolour">Color changes when mouse comes here.</span> 

Ссылка: http://www.w3schools.com/cssref/sel_hover.asp

+0

Где в моем вопросе я упоминал CSS? Я специально спросил о JS и Prototype – Ortix92

1

Прот otype способ сделать это было бы так:

$('elementId').observe('mouseenter', function(evt){ 
    this.setStyle('background-color: yellow'); 
}).observe('mouseleave', function(evt){ 
    this.setStyle('background-color: inherit'); 
}); 

Но, как другие уже указывали, реальный способ сделать это с помощью CSS. Единственная причина, по которой я мог бы подумать, что это нужно сделать в JS, - это если вам нужно поддерживать IE < = 8, который не любит делать псевдо-класс hover на любом объекте, кроме тега A.

Смежные вопросы