我正在尝试使用HTML和JavaScript编写拖动和选择功能.我的意思是会有一组具有任意绝对位置的物体.我希望能够将光标拖到它们布局的区域上.可以将其视为RTS策略(选择单位)或任何矢量图形编辑器(选择用于移动它们和编辑的对象).
首先,我了解Google和SO的前几页中出现的内容.因此,我绝不会要求为我搜索这些内容并在此处发布一些随机链接.
我能找到的大多数解决方案都存在某些缺陷.主要问题是抑制实际文本选择,这似乎违背了Web浏览器的本质.一些代码片段导致选择闪烁,我发现非常烦人.有些在所有主流浏览器中都表现不佳.
我要求您实际使用或看到成功使用的代码/库的建议.
第二件事是,我想真正理解抑制选择背后的JavaScript内部.如何在理论上做到这一点.是否有任何非hackish方式实现这一目标?
我能找到的最接近的是:http: //view.jquery.com/tags/ui/1.5b2/demos/ui.selectable.html
然而它似乎与jQuery UI紧密结合,后者又需要jQuery 1.3.x而我真的很期待使用jQuery 1.5
我有问题找到解决方案在我的WPF应用程序的listview中创建一个选择行.
我该怎么办?
可能重复:
css规则禁用文本选择突出显示
双击后阻止文本选择
即使我的事件正确地排除默认操作,单击文本然后按住Shift键单击其他文本也会导致选择.在这种情况下,这是不合需要的行为,因为我使用Shift-click来多选这些元素.
我需要做些什么才能在这里专门禁用选择吗?
编辑:在这里找到我自己的问题的解决方案.抱歉浪费了人们的时间.
我有一个Jtable,我称之为方法
table1.setAutoCreateRowSorter(true);.所以这很好用.但我在我的JFrame类中也有一个方法,当我按下按钮时会触发它.它使用此代码获取选定的行索引
int selectedRows[] = this.table1.getSelectedRows();.并显示所选间隔中对应的第一行的编辑窗口.
问题是,如果我没有点击列的标题(我的意思是我根本不对它们进行排序),我的方法是完美的.但是当我对行进行排序时,行的索引似乎根本没有变化 - 从而导致旧行的编辑窗口最初在进行任何排序之前处于该位置.
我正在使用JDK 6可以给任何提示吗?
我仍然在努力使用QListView,我试图在视图中选择一个特定的行,我无法弄清楚如何做到这一点.
我在StackOverflow上发现了一个类似的问题,它建议使用createIndex()模型的方法,但是这个方法是受保护的(可能它曾经是公共的但不再是),所以这对我不起作用.有什么建议吗?
我有一个场景,我有一些文本,应该是用户可选择的.问题是,它上面有一个UI覆盖,这会阻止默认情况下选择文本.保持叠加层仍然能够选择文本的逻辑方法是使用合成事件(使用document.createEvent),但由于某种原因,它不能按预期工作.
事件似乎被正确委派并触发其处理程序,但未选择任何文本.我在这里有一个例子,这是对问题的粗略简化.
几点说明
mousedown事件中删除选择,但不会发生我错过了一个应该委派的事件(我有mousedown,mousemove和mouseup)?或者是浏览器禁用此类行为的某种安全措施(请参阅注释2)?关于如何获得所需结果的任何其他建议?我知道我应该完全解决当前的叠加解决方案,但我已经对问题本身感到好奇.
html javascript javascript-events selection event-delegation
基本上我需要知道何时window.getSelection()更改并将处理程序绑定到此事件.想法?
OBS:请注意,我不打算在INPUT或TEXTAREA上绑定选择更改.我正在谈论窗口中的任何选择.
将my的选择模式设置ListView为multiple时,我遇到了Android API级别11中引入的常量:CHOICE_MODE_MULTIPLE_MODAL.JavaDoc并没有帮助我:
public static final int CHOICE_MODE_MULTIPLE_MODAL
该列表允许在模态选择模式中进行多种选择.
什么是模态选择模式?找不到它.
我在大多数文本网站范围内使用文本阴影,但是当您突出显示/选择文本时 - 文本看起来很模糊.所以为了删除文本阴影我从这里使用这个css .
::-moz-selection,
::-webkit-selection,
::selection {
text-shadow: none;
background: #333;
color: #fff;
}
Run Code Online (Sandbox Code Playgroud)
问题是,由于某些原因moz-selection,在mozilla(Firefox)中似乎不再起作用(不再?).
这是jsFiddle
在标记重复/下降之前看到
我见过很多解决方案.很多人都是Tim Down和其他人.但没有一个可行.我所看到的window.getSelection,.addRange等等,但没有看到他们在这里如何应用.
这是一个jsfiddle.
(试过)代码:
var node = document.querySelector("div");
node.focus();
var caret = 10; // insert caret after the 10th character say
var range = document.createRange();
range.setStart(node, caret);
range.setEnd(node, caret);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
Run Code Online (Sandbox Code Playgroud)