2013-04-12 3 views

ответ

1

Что такое style? Вы не определили его в любом месте вашего кода выше:

function ChangeBgColor(obj, evt) 
{ 
    if(evt.type=="focus") 
     style.background ="lightgrey"; //<--what is style? 
    else if(evt.type=="blur") 
    { 
     style.background="white"; 
    }   
} 

Я предполагаю, что вы хотите что-то вроде

obj.style.background ="lightgrey"; 

И в приведенном выше коде, упрощенный

function ChangeBgColor(obj, evt) 
{ 
    obj.style.background = (evt.type=="focus") ? "lightgrey" : "white"; 
} 

Лучший ответ заключается в использовании чистого CSS.

+0

его рабочий большой –

0

Попробуйте делать это с JQuery.

$('#div').on('focus', function() { 
    $(this).css({background:'blue'}); 
}); 
+0

ОП, вероятно, не хочет ответа JQuery. – Mooseman

+0

Да Mooseman im найти ответ только в JavaScript –

4

JavaScript не является необходимым для выполнения этой задачи, просто использовать CSS (:focus поддерживается начиная с IE8)

https://developer.mozilla.org/en-US/docs/CSS/:focus

input { background: lightgray; } 
input:focus { background: white; } 

Только если этот эффект абсолютно необходимо также на < IE8 t JS (правильно обернутый условным комментарием) можно использовать, но даже в этом случае рекомендуется избегать стиля из логики: например,

function ChangeBgColor(obj, evt) { 
    obj.className = (evt.type === "focus") ? "focus" : ""; 
} 

и использовать этот стиль

input { background: lightgray; } 

input:focus, 
input.focus { background: white; } 
1

Да, вы должны попробовать этот яваскрипта код, чтобы изменить цвет фона для этого элемента:

var obj = document.getElementById("yourId"); 
    obj.onfocus = function() { 
    obj.style.backgroundColor = 'red'; 
    } 

Теперь вы можете изменить любой цвет, который вы хотите

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