这样就可以了。。 <script type="text/javascript"> var crobj = function (i) { var wc = this, div; wc.time = 0; (div = wc.div = document.createElement("div")).innerHTML = (wc.number = i); div.onmouseover = function () { wc.over(); } div.onmouseout = function () { wc.out(); }; };crobj.prototype = { over : function () { this.time = window.setTimeout("alert('" + this.number + "被P了2S')", 2000); },
out : function () { window.clearTimeout(this.time); }}; window.onload = function () { for (var i = 0 ; i < 5 ; i ++) document.body.appendChild(new crobj(i).div); }; </script>
经过测试。。发现。。 new 后。。 return 这里的值如果是对象的引用的话,那么则返回这个。否则返回类 - -,真奇妙。。 ~~~~ 不明白这句话是啥意思,能否解释一下啊
<style type="text/css"> div { width:200px; height:40px; line-height:40px; background-color:#CCCCCC; border:#000000 3px solid; margin-top:5px; } </style> <script type="text/javascript"> window.onload = function () { for(i=0;i<5;i++){ var div = document.createElement("div"); (function () { div.innerHTML = i; var time; div.onmouseover = function () { var time = window.setTimeout("alert('" + i+ "被P了2S')", 2000); }; div.onmouseout = function () { window.clearTimeout(time); }; })(); document.body.appendChild(div); } }; </script> 这样为什么不行呢?该怎样改呢?muxrwc(需时越兔)
这样就没问题了。。嘿嘿 <style type="text/css"> div { width:200px; height:40px; line-height:40px; background-color:#CCCCCC; border:#000000 3px solid; margin-top:5px; } </style> <script type="text/javascript"> window.onload = function () { for(i=0;i<5;i++){ var div = document.createElement("div"); (function (i) { div.innerHTML = i; //你这里的I是引用的外面的那个I所以不行 var time; div.onmouseover = function () { //var time = window.setTimeout("alert('" + i+ "被P了2S')", 2000); //并且你这里重新的var(声明)了一下time,这样的话这个变量的作用范围就是这个函数内。 //所以外面就访问不到time了。。所以你要把var去掉 time = window.setTimeout("alert('" + i+ "被P了2S')", 2000); //即 }; div.onmouseout = function () { window.clearTimeout(time); }; })(i); document.body.appendChild(div); } }; </script>
new 后。。
return 这里的值如果是对象的引用的话,那么则返回这个。否则返回类 - -,真奇妙。。
<script type="text/javascript">
var crobj = function (i) {
var wc = this, div;
wc.time = 0;
(div = wc.div = document.createElement("div")).innerHTML = (wc.number = i);
div.onmouseover = function () {
wc.over();
}
div.onmouseout = function () {
wc.out();
};
};crobj.prototype = { over : function () {
this.time = window.setTimeout("alert('" + this.number + "被P了2S')", 2000);
},
out : function () {
window.clearTimeout(this.time);
}};
window.onload = function () {
for (var i = 0 ; i < 5 ; i ++)
document.body.appendChild(new crobj(i).div);
};
</script>
new 后。。
return 这里的值如果是对象的引用的话,那么则返回这个。否则返回类 - -,真奇妙。。
~~~~
不明白这句话是啥意思,能否解释一下啊
<style type="text/css">
div {
width:200px;
height:40px;
line-height:40px;
background-color:#CCCCCC;
border:#000000 3px solid;
margin-top:5px;
}
</style>
<script type="text/javascript">
window.onload = function () {
for(i=0;i<5;i++){
var div = document.createElement("div");
(function () {
div.innerHTML = i;
var time;
div.onmouseover = function () {
var time = window.setTimeout("alert('" + i+ "被P了2S')", 2000);
};
div.onmouseout = function () {
window.clearTimeout(time);
};
})();
document.body.appendChild(div);
}
};
</script>
这样为什么不行呢?该怎样改呢?muxrwc(需时越兔)
<style type="text/css">
div {
width:200px;
height:40px;
line-height:40px;
background-color:#CCCCCC;
border:#000000 3px solid;
margin-top:5px;
}
</style>
<script type="text/javascript">
window.onload = function () {
for(i=0;i<5;i++){
var div = document.createElement("div");
(function (i) {
div.innerHTML = i; //你这里的I是引用的外面的那个I所以不行
var time;
div.onmouseover = function () {
//var time = window.setTimeout("alert('" + i+ "被P了2S')", 2000);
//并且你这里重新的var(声明)了一下time,这样的话这个变量的作用范围就是这个函数内。
//所以外面就访问不到time了。。所以你要把var去掉
time = window.setTimeout("alert('" + i+ "被P了2S')", 2000); //即
};
div.onmouseout = function () {
window.clearTimeout(time);
};
})(i);
document.body.appendChild(div);
}
};
</script>
这个这个的意思就是new的话,一般都返回实例对象...
但是如果你的构造函数里有return的话..return的内容是对象.这样new操作后..
就不会返回实例对象,而是返回return的这个对象...