j++; //表示第j个小旗
obj=document.createElement("IMG");
obj.src="img/qi.gif";
obj.id="divs['+j+"]"; //id尽量不要这样命名,像"div_"+j 回好些
obj.style.posTop=event.y; //原来的divs[j]系统会认为是数组
obj.style.posLeft=event.x;
document.body.appendChild(obj);
obj=document.createElement("IMG");
obj.src="img/qi.gif";
obj.id="divs['+j+"]"; //id尽量不要这样命名,像"div_"+j 回好些
obj.style.posTop=event.y; //原来的divs[j]系统会认为是数组
obj.style.posLeft=event.x;
document.body.appendChild(obj);
这样也行
你的思路可以
<body>
<div style="width:200px; height:200px; background-color:#cfa" id="map_div" onClick="CreateMap()">
</div>
<script>
function CreateMap(){
var ev = window.event;
var target = ev.target || ev.srcElement;
if(!target && target.id!="map_div") return;
var imglen=document.images.length;
var obj=document.createElement("DIV");
obj.id="flag_"+(imglen+1); //id尽量不要这样命名,像"div_"+j 回好些
with(obj.style){
width="10px";
height="10px";
position ="absolute";
posTop=event.y; //原来的divs[j]系统会认为是数组
posLeft=event.x;
}
obj.innerHTML="<img src='img/qi.gif'>";
document.getElementById("map_div").appendChild(obj);
}
</script>
</body>
</html>
不好意思,第九行应该是
if(!target || target.id!="map_div") return;
<img src="img/ditu.JPG" id="map_div" onClick="CreateMap()">
运行后报错:“意外地调用了方法和属性访问”。若:
<div style="width:200px; height:200px; background-color:#cfa" id="map_div" onClick="CreateMap()">
<img src="img/ditu.JPG">
</div>
点击没反应,因为点击的是地图而不是直接点到div上。请问该怎么办?谢谢!回4楼,报错信息就是“divs[j].style为空或不是对象 ”
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test</title>
<script>
function insert(e){
e = e || event;
var obj = document.getElementById("qi");
obj.style.left = e.clientX;
obj.style.top = e.clientY;
}
</script>
</head>
<body>
<img src="1.gif" width="680" height="230" onClick="insert(event)"><div id="qi" style="position:absolute"><img src="2.gif"></div>
</body>
</html>把图换成你需要的吧