javascript event
发布网友
发布时间:2022-04-22 11:51
我来回答
共3个回答
热心网友
时间:2022-05-17 01:22
1.点击一次只显示一个:可以给新生成的div加一个id,然后之后每次判断此div是否已生成,如果已生成就先销毁它,再重新生成;
2.鼠标点击其他地方:给<a>注册一个失去焦点的事件,调用销毁生成的div就可以了。
代码如下(测试有效):
function here(event){
destroyOld();
var left=event.clientX+document.body.scrollLeft;
var top=event.clientY+document.body.scrollTop;
var obj=document.createElement("div");
obj.style.cssText="position:absolute;left:"+left+";top:"+top+";width:100px;height:200px;background:red";
obj.innerHTML = '你吃饭了吗';
obj.id = 'eatDiv';
document.body.appendChild(obj);
}
function destroyOld(){
var div = document.getElementById('eatDiv');
if(div){
div.innerHTML = '';
div.parentNode.removeChild(div);
}
}
<a href="javascript:void(0)" onclick="here(event)" onblur="destroyOld()">come here</a>
其实还有个方法,点击a时可只生成一个div,之后再点击可判断此div是否存在,若存在则改变他的left 和 top 值为当前鼠标点击的位置;然后在失去焦点的时候将div隐藏 div.style.display = "none",点击a标签时再显示div.style.display = "block",这样就不用总删除页面dom元素了。这个方法也很简单,你可以自己写写看,授人以鱼不如授人以渔~~
完全原创,写这么多了,给分吧~~ 嘿嘿
热心网友
时间:2022-05-17 02:40
var flag=1;
function here(event)
{
if(flag){
var left=event.clientX+document.body.scrollLeft;
var top=event.clientY+document.body.scrollTop;
var obj=document.createElement("div");
obj.style.cssText="position:absolute;left:"+left+";top:"+top+";width:1 00px;height:200px;background:red";
obj.innerHTML="你吃饭了吗";
document.body.appendChild(obj);
flag=0;
}
}
热心网友
时间:2022-05-17 04:15
你的代码有什么问题啊?难道不是没点一次出来一个??