社区
JavaScript
帖子详情
获取鼠标点击位置的id
lenqi
2010-01-07 09:48:33
我现在的情况是这样的:我在body中有个div,id="main",然后在这个div上有个img,id="img1",之后在这个img1上动态画了几个div,id分别为div0,div1,div2等,我现在想实现的是,当鼠标点击div0,div1,div2时,能得到他们的id,可我用event.srcElement得到的是img的id“img1”。请问各位大侠,我怎样才能得到img上面div的id呢?
...全文
684
15
打赏
收藏
获取鼠标点击位置的id
我现在的情况是这样的:我在body中有个div,id="main",然后在这个div上有个img,id="img1",之后在这个img1上动态画了几个div,id分别为div0,div1,div2等,我现在想实现的是,当鼠标点击div0,div1,div2时,能得到他们的id,可我用event.srcElement得到的是img的id“img1”。请问各位大侠,我怎样才能得到img上面div的id呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
史蒂芬__
2010-01-07
打赏
举报
回复
[Quote=引用 6 楼 lenqi 的回复:]
引用 5 楼 jol_boy 的回复:
如果发现找到得元素是img,那就继续往上找,找img的父亲是谁?是不是div,如果你的div嵌套了其他div,那你得把你所需要的div加点特殊属性,以作区别。利用鼠标当前位置,获得当前元素,不是你需要的,就继续找元素的上一级。
怎么加特殊属性呢,您能说具体点嘛?
[/Quote]
例如你给div添加一个属性 attr="abc",
那么当你获得标签的时候判断一下当前标签的attr属性值是不是"abc",是的话就是你要的div
zhyzdl
2010-01-07
打赏
举报
回复
study
lenqi
2010-01-07
打赏
举报
回复
lenqi
2010-01-07
打赏
举报
回复
<html>
<head>
<title>Rect</title>
<style type="text/css">
</style>
<script type="text/javascript">
var Rect = {
//当前正在画的矩形对象
obj :null,
//画布
container :null,
//初始化函数
init : function(containerId) {
tempstr="";
str="";
k=0;//记录矩形个数
Rect.container = document.getElementById(containerId);
if (Rect.container) {
//鼠标按下时开始画
Rect.container.onmousedown = Rect.start;
} else {
alert('You should specify a valid container!');
}
},
start : function(e) {
o = Rect.obj = document.createElement('div');
o.style.position = "absolute";
// mouseBeginX,mouseBeginY是辅助变量,记录下鼠标按下时的位置
o.style.left = o.mouseBeginX = Rect.getEvent(e).x;
o.style.top = o.mouseBeginY = Rect.getEvent(e).y;
o.style.height = document.getElementById('height').value;
o.style.width = document.getElementById('width').value;
o.style.border = "solid red 1px";
o.id = "div"+k;
k++;
Rect.container.appendChild(o);
//处理onmouseup事件
Rect.container.onmouseup = Rect.end;
},
end : function(e) {
//onmouseup时释放onmousemove,onmouseup事件句柄
Rect.container.onmousemove = null;
Rect.container.onmouseup = null;
Rect.obj = null;
tempstr=o.style.left+','+o.style.top+','+o.style.height+','+o.style.width+';';
str=str+tempstr;
},
//辅助方法,处理IE和FF不同的事件模型
getEvent : function(e) {
if (typeof e == 'undefined') {
e = window.event;
}
//alert(e.x?e.x : e.layerX);
if (typeof e.x == 'undefined') {
e.x = e.layerX;
}
if (typeof e.y == 'undefined') {
e.y = e.layerY;
}
return e;
},
remove:function(e){
document.onclick = function(e){
var event = window.event || e;
var ele = event.srcElement || event.target;
alert(ele.id);
//这里在点击显示在图片上的动态div(div0,div1等)时,得到是img的id“img1”
}//end document
}//end remove
};//end rect
</script>
</head>
<body>
<div id="main"
style="border: solid black 1px; height: 90%; width: 60%; curssor: default;">
<img id="img1" name="imageField" border=0 src="pic1.jpg" onload="javascript:if(this.width>screen.width-100)this.width=screen.width-100">
</div>
<form name="thisform" method="post">
Width:<input type="text" size=10 value="" id="width">
Height:<input type="text" size=10 value="" id="height">
<input type=button value="Draw Rect" id="draw"> <input type="button" value="Remove" id="remove">
</form>
</body>
<script type="text/javascript">
document.getElementById('draw').onclick = function() {
Rect.init("main");
}
document.getElementById('remove').onclick = function() {
Rect.container.onmousedown = null;
Rect.remove();
};
</script>
</html>
以上是我的部分代码,不好意思,刚才说错了,不是在img上画div,而是在“main”上div,只是显示在了图片上面。
lenqi
2010-01-07
打赏
举报
回复
[Quote=引用 5 楼 jol_boy 的回复:]
如果发现找到得元素是img,那就继续往上找,找img的父亲是谁?是不是div,如果你的div嵌套了其他div,那你得把你所需要的div加点特殊属性,以作区别。利用鼠标当前位置,获得当前元素,不是你需要的,就继续找元素的上一级。
[/Quote]
怎么加特殊属性呢,您能说具体点嘛?
jol_boy
2010-01-07
打赏
举报
回复
如果发现找到得元素是img,那就继续往上找,找img的父亲是谁?是不是div,如果你的div嵌套了其他div,那你得把你所需要的div加点特殊属性,以作区别。利用鼠标当前位置,获得当前元素,不是你需要的,就继续找元素的上一级。
烟雨鹏城
2010-01-07
打赏
举报
回复
<img scr="11112.jpg"><div id="div0">111</div><div>111</div><div>111</div></img>
alert(event.srcElement.childNodes[0].id);
烟雨鹏城
2010-01-07
打赏
举报
回复
之后在这个img1上动态画了几个div?
图片上怎么画div,而且img好像不能包含div节点吧
yzone
2010-01-07
打赏
举报
回复
你可以这样嘛 在每个div上面加上onclick=click(this),function click(obj){alert(obj.id);}就可以获取了 不过要在动态赋值div的时候要为<div id="+i+">这样就对了
浪尖赏花
2010-01-07
打赏
举报
回复
LZ可以把代码贴上来
lenqi
2010-01-07
打赏
举报
回复
谢谢楼上的,我确实想看到图片。程序的功能之一就是在现有图片上画矩形。
浪尖赏花
2010-01-07
打赏
举报
回复
当然LZ也可以将背景颜色换成其他的
比如白色
浪尖赏花
2010-01-07
打赏
举报
回复
<html>
<head>
<title>Rect </title>
<style>
.d{
background-color:red; /* 背景颜色 */
filter:alpha(opacity=50); /* 如果仍想看到图片的话,用滤镜吧 */
}
</style>
<script type="text/javascript">
var Rect = {
//当前正在画的矩形对象
obj :null,
//画布
container :null,
//初始化函数
init : function(containerId) {
tempstr="";
str="";
k=0;//记录矩形个数
Rect.container = document.getElementById(containerId);
if (Rect.container) {
//鼠标按下时开始画
Rect.container.onmousedown = Rect.start;
} else {
alert('You should specify a valid container!');
}
},
start : function(e) {
o = Rect.obj = document.createElement('div');
o.style.position = "absolute";
// mouseBeginX,mouseBeginY是辅助变量,记录下鼠标按下时的位置
o.style.left = o.mouseBeginX = Rect.getEvent(e).x;
o.style.top = o.mouseBeginY = Rect.getEvent(e).y;
o.style.height = document.getElementById('height').value;
o.style.width = document.getElementById('width').value;
o.style.border = "solid red 1px";
o.className = "d";
o.id = "div"+k;
k++;
Rect.container.appendChild(o);
//处理onmouseup事件
Rect.container.onmouseup = Rect.end;
},
end : function(e) {
//onmouseup时释放onmousemove,onmouseup事件句柄
Rect.container.onmousemove = null;
Rect.container.onmouseup = null;
Rect.obj = null;
tempstr=o.style.left+','+o.style.top+','+o.style.height+','+o.style.width+';';
str=str+tempstr;
},
//辅助方法,处理IE和FF不同的事件模型
getEvent : function(e) {
if (typeof e == 'undefined') {
e = window.event;
}
//alert(e.x?e.x : e.layerX);
if (typeof e.x == 'undefined') {
e.x = e.layerX;
}
if (typeof e.y == 'undefined') {
e.y = e.layerY;
}
return e;
},
remove:function(e){
document.getElementById("main").onclick = function(e){
var event = window.event || e;
var ele = event.srcElement || event.target;
alert(ele.id);//这里在点击显示在图片上的动态div(div0,div1等)时,得到是img的id“img1”
}//end document
}//end remove
};//end rect
</script>
</head>
<body>
<div id="main"
style="border: solid black 1px; height: 90%; width: 60%; curssor: default;">
<img id="img1" name="imageField" border=0 src="http://c.csdn.net/bbs/t/5/i/pic_logo.gif" onload="javascript:if(this.width>screen.width-100)this.width=screen.width-100">
</div>
<form name="thisform" method="post">
Width: <input type="text" size=10 value="" id="width">
Height: <input type="text" size=10 value="" id="height">
<input type=button value="Draw Rect" id="draw"> <input type="button" value="Remove" id="remove">
</form>
</body>
<script type="text/javascript">
document.getElementById('draw').onclick = function() {
Rect.init("main");
}
document.getElementById('remove').onclick = function() {
Rect.container.onmousedown = null;
Rect.remove();
};
</script>
</html>
lenqi
2010-01-07
打赏
举报
回复
我现在的问题是,在id为“main“的div上动态画矩形div,这些矩形显示在了图片img1上(相当于矩形和图片叠加了),于是我点击这些矩形时得到的都是img1的属性,而不是矩形的,我怎么才能通过点击得到矩形的id呢?
C++ QT开发人机象棋(
鼠标
点击
)
本文详细介绍了如何在棋盘游戏中实现
鼠标
点击
棋子的操作,包括
获取
点击
位置
的坐标、判断
点击
是否落在棋子上以及如何
获取
被
点击
棋子的
ID
。
每天一个JavaScript实例-铺货
鼠标
点击
位置
并将元素移动到该
位置
这篇博客介绍了一个JavaScript实例,通过监听
鼠标
点击
事件,
获取
点击
位置
坐标,并将指定的红色方块元素移动到这个
位置
。示例代码中,当用户
点击
页面时,
id
为'info'的红色方块会根据
鼠标
点击
的屏幕
位置
进行动态定位。
Cesium 问题:实现
点击
获取
实体的
ID
值
本文介绍如何使用Cesium实现
点击
事件
获取
实体
ID
及实体移动后的坐标更新。通过ScreenSpaceEventHandler监听左键
点击
,
获取
并打印
点击
实体的
ID
。同时,文章详细展示了如何通过监听
鼠标
事件实现实体拖动,并在拖动过程中实时更新实体的
位置
坐标。
VC++模拟
鼠标
点击
本文介绍了一种使用VC++模拟
鼠标
点击
的方法。通过查找指定窗口并
获取
其
位置
信息,然后枚举子窗口找到特定控件
ID
对应的按钮,并发送模拟
鼠标
点击
事件。此技术可用于自动化测试或操作。
openlayers
鼠标
悬停,
鼠标
点击
事件
这篇博客探讨了如何使用JavaScript处理地图应用中的
鼠标
事件。通过监听'pointermove'事件,实现
鼠标
悬停时改变光标样式,提供用户交互提示。同时,当用户
点击
地图时,通过'click'事件
获取
点击
位置
的特征信息,进一步处理如
获取
特征的唯一
ID
等操作,展示了地图数据交互的基础实现。
JavaScript
87,988
社区成员
224,684
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章