2

我使用 jQuery UI 库来拖动和排序元素: http: //jqueryui.com/demos/sortable 这工作正常,但我不能拖动输入元素,如 textarea。这些文本区域被禁用,因此无需在其中写入。我用谷歌搜索了一下,发现我不是唯一一个遇到这个问题的人。对此有一些半解决方案,但它们似乎都过时了。(jQuery 发展很快)。

4

2 回答 2

0

这应该有效:

HTML:

<div class="sortable-wrapper">
<ul id="sortable-list">
<div class="ui-state-default">
<textarea></textarea>
</div>
</ul>
</div>

jQuery:

$( "#sortable-list" ).sortable();
$( "#sortable-list" ).disableSelection();
于 2011-03-30T17:32:15.777 回答
0

如果我能帮助你,你必须为我提供一些代码。

(注意:如果您在抓取 textarea 时尝试拖动项目,您应该实现一些开关来打开/关闭选择。我建议您采用不同的方法,您可以随时通过单击内部来编辑 textarea。对于排序,我会使用把手抓住。)

<ul>jQuery sortable 适用于列表,即<ol>包含<li>. 此类问题通常是由不正确的 html 引起的。

<ul class="my-items">
<li><textarea></textarea></li>
<li><textarea></textarea></li>
<li><textarea></textarea></li>
<li><textarea></textarea></li>
</ul>

jQuery

 $( ".my-items" ).sortable();

如果您想禁用列表项中的文本选择,请在所有文本元素上执行此操作。不是文本区域。将文本包装在 p、span、div 中并仅在这些元素上调用 disableSelection()。

在对脚本进行故障排除之前验证 html 也是一种很好的做法。我更喜欢http://validator.w3.org/服务。

于 2011-06-21T12:33:49.397 回答