+ -
当前位置:首页 → 问答吧 → 为什么 不能响应 onclick 事件?在线等

为什么 不能响应 onclick 事件?在线等

时间:2011-10-07

来源:互联网

【背景】:用google map api + VML 画 很多 点到 google map overlayer 上去。

  //========================================================
  GraphicsOverlay.prototype.DrawOnDiv = function () 
  {
  var div = document.createElement('DIV');
  div.style.position = "absolute";

  for (var k = 0; k<20; k++)
  { 
  var vectorgraphics_Oval = this.CreateOvalObj(ScrnX[k], ScrnY[k]); // 用 VML 画点
  vectorgraphics.onclick = function{abc();};

  div.appendChild(vectorgraphics_Oval); // 所有点都加到 DIV 上去, 
  }

  // .. 省略

  }
  //========================================================


  发现只有 append 上的最后一点才能响应 mouse click, 为什么呢???
  如果我把 div.appendChild(vectorgraphics_Oval); 换成 document.body.appendChild(vectorgraphics_Oval);  
  那所有的点都是可以响应 mouse click 的。 但这不是我要的结果,画图不正确。


谢谢大家




 

作者: ghostiger   发布时间: 2011-10-07

var div = document.createElement('DIV');
你只创建了一个DIV,然后不断的给这个div添加appendChild,当然只有最后一次的有效啊
你把创建div写到循环里,然后给每个div添加appendChild试试看?

作者: butcher2002   发布时间: 2011-10-07

请问:怎么把创建div写到循环里??谢谢

作者: ghostiger   发布时间: 2011-10-07

请问:怎么把创建div写到循环里??谢谢

引用 1 楼 butcher2002 的回复:
var div = document.createElement('DIV');
你只创建了一个DIV,然后不断的给这个div添加appendChild,当然只有最后一次的有效啊
你把创建div写到循环里,然后给每个div添加appendChild试试看?

作者: ghostiger   发布时间: 2011-10-07

for(..)
{
code
}

作者: zxy397472251   发布时间: 2011-10-07

其实我也看不太懂你的代码...7年没上CSDN了...
var vectorgraphics_Oval = this.CreateOvalObj(ScrnX[k], ScrnY[k]); // 用 VML 画点
  vectorgraphics.onclick = function{abc();};
明明创建对象赋值给了vectorgraphics_Oval 可是却给vectorgraphics添加了onclick 事件,再把vectorgraphics_Oval 追加到div上....

不懂vectorgraphics_Oval 和vectorgraphics 是什么关系...也许代码没贴全?

作者: butcher2002   发布时间: 2011-10-07

不好意思, 是代码贴错了, 应该是

var vectorgraphics_Oval = this.CreateOvalObj(ScrnX[k], ScrnY[k]); //用VML画点
vectorgraphics_Oval.onclick = function{abc();};


引用 5 楼 butcher2002 的回复:
其实我也看不太懂你的代码...7年没上CSDN了...
var vectorgraphics_Oval = this.CreateOvalObj(ScrnX[k], ScrnY[k]); // 用 VML 画点
vectorgraphics.onclick = function{abc();};
明明创建对象赋值给了vectorgraphics_Oval 可是却给vectorgraphi……

作者: ghostiger   发布时间: 2011-10-07