Javascript js中的setCapture()存在问题 捕鼠 函数动作(){ if(event.srcmelement.id='DIV1')DIV1.releaseCapture(); else DIV1.style.backgroundColor=Math.floor(Math.random()*16777216); }

Javascript js中的setCapture()存在问题 捕鼠 函数动作(){ if(event.srcmelement.id='DIV1')DIV1.releaseCapture(); else DIV1.style.backgroundColor=Math.floor(Math.random()*16777216); },javascript,Javascript,上述代码取自: 问题: 我在IE中试过,我点击了某个区域(不是DIV1),颜色变了,我再次点击,颜色没有变,似乎颜色只能改变一次,为什么?这里是更改代码,每次你点击DIV外的地方都会改变颜色,我移动到onclick to body <HTML> <HEAD> <TITLE>Mouse Capture</TITLE> <SCRIPT> function action() { if (event.srcElement.id=='DIV1')

上述代码取自:

问题:


我在IE中试过,我点击了某个区域(不是DIV1),颜色变了,我再次点击,颜色没有变,似乎颜色只能改变一次,为什么?

这里是更改代码,每次你点击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();">
<DIV ID="DIV1" onclick="action();" STYLE="position:absolute;top:10;left:10;height:100;width:200;background-color:red">
</DIV>
</BODY>
</HTML>

捕鼠
函数动作(){
if(event.srcElement.id=='DIV1'){
DIV1.releaseCapture();
}
否则{
DIV1.style.backgroundColor=Math.floor(Math.random()*16777216);
}
}
这是另一种选择,代码更简单,也适用于谷歌浏览器

<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>

捕鼠
函数动作(){
if(event.srceelement.id!=“DIV1”){
document.getElementById('DIV1').style.backgroundColor=get_random_color();
}
}
函数get_random_color(){
变量字母='0123456789ABCDEF'。拆分('');
var color='#';
对于(变量i=0;i<6;i++){
颜色+=字母[Math.round(Math.random()*15)];
}
返回颜色;
}

好吧,我的问题是:为什么在div外单击时只能更改一次颜色?你可以尝试在div外单击多次,看看会发生什么。
<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>