html如下:<div id="parent">
<div id="child1" style="background:red;    margin:1px 5px 1px 1px; float:left;">aaa</div>
<div id="child2" style="background:yellow; margin:1px 5px 1px 1px; float:left;">bbb</div>
<div id="child3" style="background:blue;   margin:1px 5px 1px 1px; float:left;">ccc</div>
我想在单击时判断:
1)当前单击的是哪个div(parent,child1,child2还是child3)
2)如果单击的是parent,就需要获得单击的位置,是在2个子节点之间(比如单击了child1与child2之间的空白,或者child2与child3之间),是在最开始位置(child1之前),还是在最后位置(child3之后)求解!

解决方案 »

  1.   

    window.onload=function(){
    document.getElementById("parent").onclick =function std(){
      alert("你点击的是parent DIV");
    }
    document.getElementById("parent").onclick =function std(){
      alert("你点击的是child1 DIV");
    }
    document.getElementById("parent").onclick =function std(){
      alert("你点击的是child2 DIV");
    }
    document.getElementById("parent").onclick =function std(){
      alert("你点击的是child3 DIV");
    }
    }
      

  2.   

    忘了把下面的几个改成
    document.getElementById("child1")
    document.getElementById("child2")
    document.getElementById("child3")
      

  3.   

    可以通过判断鼠标坐标和计算范围来判断。
    不过这样好像就多此一举了。
    何不在child1、child2之间插入一个透明的div,填加上事件不就成了?
      

  4.   

    可以在div之间放一些span,通过nextSibling属性判断
      

  5.   

    如果什么都不加,想判断位置,需要保证各个div的高度宽度固定,通过计算鼠标位置获得逻辑位置
      

  6.   

    把楼主的div布局稍微改动了下,要不然,不好实现楼主需要的功能。希望对楼主有帮助!<body>
        <div id="parent">
            <div style="float: left;">
                <div id="child1" style="background: red; margin: 1px 5px 1px 1px; float: left;">
                    aaa
                </div>
                <span id="a">&nbsp;</span>
            </div>
            <div style="float: left;">
                <div id="child2" style="background: yellow; margin: 1px 5px 1px 1px; float: left;">
                    bbb</div>
                <span id="b">&nbsp;</span>
            </div>
            <div style="float: left;">
                <div id="child3" style="background: blue; margin: 1px 5px 1px 1px; float: left;">
                    ccc</div>
                <span id="c">&nbsp;</span>
            </div>
        </div>
    </body>
    </html>
    <script>
        $(function () {
            //两个元素之间的空白位置。用span处理的
            $("#parent span").bind("click", function () {
                //空白位置对应的代码处理。
                alert($(this)[0].id);
            })
            //点击div的时候
            $("#parent div[id]").bind("click", function () {
                //获取对应的id
                alert($(this)[0].id);
            })
        })
    </script>
      

  7.   

    哦,是一种思路。 我想做的是类似qq邮箱发件人的那种,看qq的html没发现2个div之间有其他的元素,不知道怎么实现的
      

  8.   

    使用了jquery吗,大体实现思路也是增加了元素,谢谢