日期:2014-05-16  浏览次数:20320 次

js eventClientX
我建了一个<textarea>,position设为absolute。然后在onmousedown事件里去获取clientX和clientY,总是不对。
比如我的textarea设为top:500px, left:350px; 然后我clientX和y为252,205,而且我每次点的位置不同,但坐标都一样。这是什么原因,该怎么解决?


------解决方案--------------------
然后我clientX和y为252,205,这句话怎么理解?

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload = function() {
    document.getElementById('demo').onclick = function(e) {
        var e = window.event || e;
        alert("X:" + e.clientX + "\nY:" + e.clientY);
    }
}
</script>
</head>

<body>
<textarea id="demo" style="position:absolute; top:500px; left:350px;"></textarea>
</body>
</html>

------解决方案--------------------
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload = function() {
    var obj = document.getElementById('demo');
    obj.onclick = function(e) {
        var e = window.event || e;
       // alert("X:" + e.clientX + "\nY:" + e.clientY);
        obj.style.left = e.clientX + 'px'
        obj.style.top = e.clientY + 'px'
    }
}
</script>
</head>

<body>
<textarea id="demo" style="position:absolute; top:100px; left:150px;"></textarea>
</body>
</html>