jQuery拖动div选择的文本

时间:2009-09-24 04:20:18

标签: javascript jquery html drag

我正在使用jquery在网站上制作一些可拖动的div。我的代码与此类似:

$("#thediv").bind('mousedown',function(){
    $(document).bind('mousemove',function(ms){
      //drag
    })
});

问题是如果鼠标对于div来说太快,鼠标就会超出div。这将在屏幕上选择随机内容(将其突出显示为蓝色)。它不会产生平滑的拖动效果。有没有一个很好的方法来解决这个问题? jQuery的ui drag插件没有这个问题。我不想使用它,因为它是一个大文件。

由于

2 个答案:

答案 0 :(得分:4)

要防止在页面中选择元素,只需从函数中返回false(onmousedown,onmousemove)。此外,对于此功能,您不需要jquery,只需使用此模式:

var mouseMove = function () {
    // move div
    return false;
}
var mouseUp = function () {
    document.onmousemove = null;
    document.onmouseup = null;          
}
var mouseDown = function () {
    document.onmousemove = mouseMove;
    document.onmouseup = mouseUp;
    return false;
}
div.onmousedown = mouseDown;

不要忘记从事件函数mouseMove返回false以防止默认事件;

答案 1 :(得分:1)

还要考虑CSS:

#thediv {
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}