繁体   English   中英

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

[英](my) Drag and Drop (javascript) doesn't work properly with text

如果涉及到文本,我的javascript拖放引擎(仍在使用它)对第二次拖动不起作用。 它仍然表现正常,除非你单击<p id="square" onmousedown="drag(event)">meep</p> ,文本就会从你所点击的位置下拉并跟随你 - 但是从下面(a)几厘米)你点击的地方。 另一方面,如果我使用没有文本的<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>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM