2013-04-12 117 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

的OP可能不想要一個jQuery的答案。 – Mooseman

+0

是的Mooseman im僅在JavaScript中找到答案 –

2

obj.style.background = "#C8C8C8";

4

JavaScript是沒有必要爲這個任務,只需使用CSS(:focus因爲IE8支持)

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

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

只有當這個效果是對於< IE8 t也絕對需要可以使用hen JS(正確包裝在條件註釋中),但即使在這種情況下,也建議避免使用邏輯風格:例如

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

,並使用這種風格

input { background: lightgray; } 

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

是的,你應該試試這個JavaScript代碼來改變背景顏色爲這個元素:

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

現在你可以改變任何你想要的顏色

相關問題