JavaScript Drag&选择正确的功能

时间:2011-05-01 20:24:13

标签: javascript jquery jquery-ui selection drag

我正在努力写一个拖累和放大器使用HTML& amp; JavaScript的。我的意思是会有一组具有任意绝对位置的物体。我希望能够将光标拖到它们布局的区域上。可以将其视为RTS策略(选择单位)或任何矢量图形编辑器(选择移动它们和编辑的对象)。

首先,我了解Google和Google的前几页中出现的内容。所以。因此,我绝不会要求为我搜索这些内容并在此处发布一些随机链接。

我能找到的大部分解决方案都存在某些缺陷。主要问题是抑制实际文本选择,这似乎违背了Web浏览器的本质。一些代码片段导致选择闪烁,我发现非常烦人。有些在所有主流浏览器中都表现不佳。

我正在询问您实际使用过的代码/库的建议,或者看到成功使用过的代码/库的建议。

第二件事是,我想真正理解抑制选择背后的JavaScript内部。如何在理论上做到这一点。是否有任何非黑客的方法来实现这一目标?

我能找到的最接近的是: http://view.jquery.com/tags/ui/1.5b2/demos/ui.selectable.html

然而它似乎与jQuery UI紧密结合,后者又需要jQuery 1.3.x而我真的很期待使用jQuery 1.5

4 个答案:

答案 0 :(得分:22)

抱歉我的英语。我正在使用这个库进行拖放操作,这很棒。不确定这是否是你需要的,但它可能有所帮助:

http://threedubmedia.com/code/event/drop/demo/selection

http://threedubmedia.com/code/event/drag

http://threedubmedia.com/code/event/drop

答案 1 :(得分:1)

  

主要问题是抑制实际文本选择,这似乎与Web浏览器的本质不符。

您正在寻找的功能是e.preventDefault();

$("#inputform").mousedown(function(e){
    e.preventDefault();
    //console.log('mousedown');
}).mouseup(function(e){
    e.preventDefault();
    //console.log('mouseup');
});

这只是解决了文本选择的问题。我可以在网上看到各种拖动选择js scritps,但不知怎的,我无法使它们工作。

答案 2 :(得分:1)

如果我的问题得到解决,我不能100%肯定。但我做了两个插件来处理你认为我描述的情况。它们不需要任何依赖,因此不需要jQuery或者其他任何东西。即使您不使用它们,代码也有详细记录,并且可以通过编写自己的代码来帮助您。

对于拖放,有dragNdrop
对于选择机制,有DragSelect

欢迎你。希望有所帮助!

答案 3 :(得分:0)

即使您希望使用jquery 1.5,我仍然建议您查看jquery-ui Draggable选项(从我解释您的愿望的方式来看,这似乎就像您试图完成的那样)。

http://jqueryui.com/demos/draggable/

jquery-ui总是很快赶上jquery的最新版本,并且在很多情况下都可以正常工作。我发现jquery-ui比我发现的任何其他附加组件更容易与jquery保持同步。

关于想知道如何做到这一点,你可以很容易地探索jquery的未压缩核心。它有很好的文档记录,非常简单易读。