2010-05-22 79 views
3

我点击了下面的HTML和下面的java脚本来模拟背景颜色的变化,但它似乎不起作用。任何理由?模拟点击链接时改变背景颜色

如果我只处理了onmousedown事件,背景颜色肯定会变成蓝色。但是,如果onmousedown和onmouseup都处理完毕,则视觉上不会有任何变化。

<div class='Button'><a href='mylink' onmousedown=\"changeColorOnMouseDown();\" onmouseup=\"changeColorOnMouseUp();\"><span id='note'>note...</span></a></div> 


function changeColorOnMouseDown() 
{ 
    document.getElementById('note').style.background='blue'; 
} 

function changeColorOnMouseUp() 
{ 
    document.getElementById('note').style.background='#d8dde7'; 
} 

回答

0

试试这个:

<div class="Button"><a href="#" onMouseDown="changeColorOnMouseDown();" onMouseUp="changeColorOnMouseUp();"><span id="note">note...</span></a></div> 


function changeColorOnMouseDown() 
{ 
    document.getElementById('note').style.backgroundColor = 'blue'; 
} 

function changeColorOnMouseUp() 
{ 
    document.getElementById('note').style.backgroundColor = '#d8dde7'; 
} 
+0

嗯,仍然不起作用。 – tom 2010-05-22 07:43:34

+0

@tom:看到我更新的答案plz。 – Sarfraz 2010-05-22 07:48:06

+0

是的,现在有用!谢谢! – tom 2010-05-22 07:54:00

0

除了什么Sarfraz建议(style.backgrounColor VS style.background),你不需要逃避在你的事件函数调用的报价:

<a href='mylink' onmousedown="changeColorOnMouseDown();" onmouseup="changeColorOnMouseUp();"> 

用户单引号或双引号。再次,没有必要逃避报价(\“)。

+0

正确,这是一个糟糕的错误,现在我所看到的只是onmouseup被处理,颜色被改变该事件,但颜色不会为onmosuedown事件更改,为什么? – tom 2010-05-22 08:03:32