如果我对一个可疑项目进行“jquery sortable”,那么我就无法将鼠标聚焦在任何可疑文本中的任何地方了
奇怪的是,这只在Firefox和Opera中被破解(IE,Chrome和Safari可以正常工作)。
有关快速修复的建议吗?
$(document).ready(function(){ $('#sortable').sortable(); }); One apple
Two pears
Three oranges
我找到了解决这个问题的另一个“解决方案”。
在声明可排序时,您应该添加一个取消:选项,如下所示:
One apple
Two pears
Three oranges
此版本不会在开始时强制使用光标,但也无法使用此字段进行拖动。 我建议将
包装在一个容器中,该容器有一些拖动句柄(就像gmail中每行开头的点)。
旁注: ':input,button'
是必需的,因为这是默认选项。 如果不添加这些,则输入字段和按钮会出现类似问题。
我有同样的问题,这是因为我一起使用函数disableSelection()
sortable()
实际上这是有效的,正如您可以通过按Tab键看到的那样:可编辑元素获得焦点。 我认为问题在于可排序插件劫持了mousedown
事件,从而阻止了可编辑元素在单击时获得焦点。
解决方法是将mousedown
事件处理程序添加到editable元素,以确保它获得焦点:
One apple
Two pears
Three oranges
为所有可编辑内容指定一个类名,然后使用以下方法捕获所有onmousedown事件:
$('.classname').each ( function(){ $(this)[0].onmousedown = function() { this.focus(); }; });
Patrigan的答案是正确的,但有一个更好的方法来指定取消,例如:
{cancel: 'input,textarea,button,select,option,[contenteditable]'}
我有一个类似的问题,但实际上是由于对一个元素的“disableSelection”调用。
对我来说是的,这是添加的组合:
cancel: 'input,textarea,button,select,option,[contenteditable]'
然后取下.disableSelection();
所以我离开了:
$("#sortable_list").sortable({ cancel: 'input,textarea,button,select,option,[contenteditable]' });