总体意思有点理解,具体意思没看懂。。不过意思我理解你问的问题。。
你是说那个是全局变量。。每个第二张图片会影响第一张图片对吧?
这个好弄啊。用OBJECT,或者闭包即可。

解决方案 »

  1.   

    我再说一下意图吧,就是有这么多的img对象,我想要让鼠标放在上边一段时间后就调用一个function,那些很快经过的图片就不调用了。现在是每一个图片都调用,一个不拉。楼上的大侠请给个再细致些的说明吧,用object或闭包这样的词我不太明白啊。
      

  2.   

    <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 () {
    var i, crobj = function (i) {
    var div = document.createElement("div"), time;
    div.innerHTML = i;
    div.onmouseover = function () {
    time = window.setTimeout("alert('" + i + "被P了2S')", 2000);
    };
    div.onmouseout = function () {
    window.clearTimeout(time);
    };
    return div;
    };

    for (i = 0 ; i < 5 ; i ++) {
    document.body.appendChild(crobj(i));
    }
    };
    </script>
      

  3.   

    类方案<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">
    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();
    };
    return div;
    };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));
    };
    </script>
      

  4.   

    muxrwc(需时越兔)大侠,你的代码的确可行。可是我不太明白怎么把你的代码加进我的程序里。能帮帮忙吗?
      

  5.   

    for (i = 0; i < visibleTiles.length; i++) {
    var tileArray = visibleTiles[i];
    var tileName = tileArray[1] + "_" + tileArray[0];
    visibleTilesMap[tileName] = true;
    var img = document.getElementById(tileName);

    if (!img) {
    img = document.createElement("img");
    img.src="../i/"+ tileName+ ".gif";
    img.style.position = "absolute";
    img.style.left = (tileArray[0] * tileSize) + "px";
    img.style.top = (tileArray[1] * tileSize) + "px";
    img.style.zIndex = 0;
    img.setAttribute("id", tileName);
    img.onclick = function () {
    maptitle(this);
    }

    (function () {
    var isDelay;

    img.onmouseover = function () {
    isDelay=setTimeout(mapover(this),2000);
    }

    img.onmouseout = function () {
    clearTimeout(isDelay);
    }
    })();

    innerDiv.appendChild(img);
    }
    }
      

  6.   

    <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();
    };
    return div;
    };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));
    };
    </script>----
    wc = this既然.,那么this.over()这么写为什么不行..这几个this弄不明白.
      

  7.   

    div.onmouseover = function () {
    wc.over();
    }
    div.onmouseout = function () {
    wc.out();
    };
    因为这个函数里的this就变成了div。而不是wc那个this,所以不行。
      

  8.   

    新建div是crobj实例的属性,div的onmouseout事件响应是去处理crobj实例的方法通过改变crobj原型的的方法影响crobj实例的同名方法理解了...
      

  9.   

    setTimeout(mapover(this),2000);如果mapover不是全局函数,则该方法无效
    img.onmouseover=function(){isDelay=setTimeout(mapover(this),2000);}
    这里在循环后只会对最后一个有效
    就是当用户把鼠标放在图片上时,用ajax取数据库信息显示出来
    这种方法不是很好
      

  10.   

    <script language="" type="text/javascript">
    for (i=0;i<5;i++){
    var div = document.createElement("div"),time;
    div.innerHTML = i;
    div.onmouseover = new Function ("time=window.setTimeout('alert("+i+")', 2000)");div.onmouseout = function () {
    window.clearTimeout(time);
    };
    document.body.appendChild(div);
    }
    </script>