首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js可否识别一定范围的鼠标点击

2013-02-18 
js能否识别一定范围的鼠标点击?例如:bodydiv idd1a ida1input typebuttonidbtn1 /di

js能否识别一定范围的鼠标点击?
例如:
<body>
<div id="d1">
  <a id="a1">
  <input type="button"  id="btn1" >
</div>
<div id="d2">
  <a id="a2">
  <input type="button"  id="btn2" >
</div>
<div id="d3">
   <a id="a3">
  <input type="button"  id="btn3" >
</div>
...................
</body>

当点击 不是 div  d1 里面的按钮或链接时,需要提醒用户,有没有什么方法可以做到?

如果在其他按钮或链接处添加检测,需要添加的东西太多!

[解决办法]
注意你的html标签要记得写结束标记,要不在ie下有问题

<body>
<div id="d1">
  <a id="a1">a1</a>
  <input type="button" id="btn1" >
</div>
<div id="d2">
  <a id="a2">a2</a>
  <input type="button" id="btn2" >
</div>
<div id="d3">
  <a id="a3">a3</a>
  <input type="button" id="btn3" >
</div>
</body>
<script type="text/javascript">
function parentNodeIsD1(o){//判断点击的对象的父节点是否为d1
  do{
    if(o.id=='d1')return true;
  }while(o=o.parentNode)
  return false;
}
document.onclick=function(e){
  e=e
[解决办法]
event;
  var o=e.srcElement
[解决办法]
e.target;
  if(parentNodeIsD1(o)){alert('点击了div id为d1里面的内容');}
  else{
    alert('请点击div id为d1里面的内容');
    //下面为阻止事件触发的代码
    if(e.preventDefault)e.preventDefault();
    else e.returnValue=false;
  }
}
</script>

[解决办法]

阻止事件冒泡,给div和其子元素都添加上事件;
子元素的事件执行其他操作,div的事件就给提示

热点排行