<HTML>
<HEAD>
<TITLE>Mouse Capture</TITLE>
<SCRIPT>
function action() {
if (event.srcElement.id=='DIV1') DIV1.releaseCapture();
else DIV1.style.backgroundColor=Math.floor(Math.random()*16777216);
}
</SCRIPT>
</HEAD>
<BODY onload="DIV1.setCapture();">
<DIV ID="DIV1" onclick="action();" STYLE="position:absolute;top:10;left:10;height:100;width:200;background-color:red">
</DIV>
</BODY>
</HTML>
以上代码摘自:http://www.htmlgoodies.com/beyond/javascript/advanced-javascript-event-handling.html
问题:
我在IE中尝试过,我点击某个区域(不是DIV1),颜色变了,我再次点击,颜色没有变化,似乎颜色只能改变一次,为什么?
答案 0 :(得分:0)
以下是每次在DIV外部点击时更改颜色的更改代码,我移动到onclick to body。
<HTML>
<HEAD>
<TITLE>Mouse Capture</TITLE>
<SCRIPT>
function action() {
if (event.srcElement.id=='DIV1') {
DIV1.releaseCapture();
}
else {
DIV1.style.backgroundColor=Math.floor(Math.random()*16777216);
}
}
</SCRIPT>
</HEAD>
<BODY onload="DIV1.setCapture();" onclick="action();">
<DIV ID="DIV1" STYLE="position:absolute;top:10;left:10;height:100;width:200;background-color:red" >
</DIV>
</BODY>
</HTML>
这是另一种选择,代码更简单,也可以在Google Chrome上使用
<HTML>
<HEAD>
<TITLE>Mouse Capture</TITLE>
<SCRIPT>
function action() {
if (event.srcElement.id != 'DIV1') {
document.getElementById('DIV1').style.backgroundColor = get_random_color();
}
}
function get_random_color() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.round(Math.random() * 15)];
}
return color;
}
</SCRIPT>
</HEAD>
<BODY onclick="action();">
<DIV ID="DIV1" STYLE="position:absolute;top:10;left:10;height:100;width:200;background-color:red" >
</DIV>
</BODY>
</HTML>