我在窗口中画了一个层,为了让它能实现拖动,把鼠标的点击和移动事件都用了,当我在层里面再做一个提交表单的时候,这个表单的文本框和按钮都不再响应鼠标了,于是我用了当鼠标在文本框上或按钮上时获得焦点,但用起来始终觉得很别扭,不能用鼠标拖选文本框中的文字,按钮要双击才能响应。请教各位大哥,这个问题怎么解决呀?(图层我用了setCapture())

解决方案 »

  1.   

    <html>
    <script>
    var moveObj = null ;
    var justX ;
    var justY ;
    function Load()
    {
    document.body.attachEvent( "onmousedown" , bDown ) ;
    document.body.attachEvent( "onmouseup" , bUp ) ;
    document.body.attachEvent( "onmousemove" , bMove ) ;
    }function bDown()
    {
    if( event.srcElement.getAttribute( "dragFlag" ) != null )
    {
    moveObj = event.srcElement ;
    }
    }
    function bUp()
    {
    moveObj = null ;
    }
    function bMove()
    {
    if( moveObj != null )
    {var difX = event.x - justX ;
    var difY = event.y - justY ;
    moveObj.style.top = parseInt( moveObj.style.top ) + difY ;
    moveObj.style.left = parseInt( moveObj.style.left ) + difX ;
    }
    justX = event.x ;
    justY = event.y ;
    }
    </script>
    <body onload="Load()">
    <div dragFlag=true style="position:absolute;left:168px;top:40px;width:110px;height:150px;z-index:100;border: 1px solid #000000;"></div>
    <div dragFlag=true style="position:absolute;left:68px;top:240px;width:110px;height:150px;z-index:101;border: 1px solid #000000;"></div>
    </body>
    </html>
    这是偶拖放怪的代码.
    感觉里面attachEvent这个方法对楼主也许有帮助.