(我的)拖放(javascript)无法正常使用文本

时间:2011-02-24 21:20:48

标签: javascript drag-and-drop

如果涉及到文本,我的javascript拖放引擎(仍在使用它)对第二次拖动不起作用。它仍然表现正常,除非您单击<p id="square" onmousedown="drag(event)">meep</p>,文本会从您不是单击的位置下降并跟随您,而是从您单击的下方(几厘米)开始跟随。另一方面,如果我使用没有文字的<div>,它就会完美无缺。

// JavaScript Document

var posX;
var posY;
var element;

function drag(event) {
    element = document.getElementById("square");
    posX = event.clientX -parseInt(element.offsetLeft);
    posY = event.clientY -parseInt(element.offsetTop);
    document.addEventListener("mousemove", move, false);
}

function move(event) {

    if (typeof(document.getElementById("square").mouseup) == "undefined")
        element.addEventListener("mouseup", drop, false);
    //Prevents redundantly adding the same event handler repeatedly

    element.style.left = event.clientX - posX + "px";
    element.style.top = event.clientY - posY + "px";
}    

function drop() {
    document.removeEventListener("mousemove", move, false);
    element.removeEventListener("mouseup", drop, false);
}

html是:

<div id="square" onmousedown="drag(event)"></div>

<p id="square" onmousedown="drag(event)">meep</p>

和一些节省时间的CSS:

#square {
    position: relative;
    width: 100px;
    height: 100px;
    background: red;
}

谢谢大家的答案和时间!

编辑:<div>似乎与其中的文字完美配合,但不是<p>

1 个答案:

答案 0 :(得分:2)

您的<p>元素是否有边距或填充?我猜这是推动它不合适的原因

相关问题