jQuery 可拖动可排序输入元素

发布于 2024-10-27 13:12:42 字数 242 浏览 4 评论 0原文

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

I use the jQuery UI library to drag and sort elements: http://jqueryui.com/demos/sortable
This works fine but I can't drag input elements such as a textarea. These textarea's are disabled so no need to be able to write in them.
I googled around a bit and noticed that I ain't the only one with this problem. There are some semi-solutions for this but they are all dated it seems. (jQuery develops quickly).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花辞树 2024-11-03 13:12:43

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

(注意:如果您尝试在抓取文本区域时拖动项目,则应该实现一些开关来打开/关闭选择。我建议采用一种不同的方法,您可以随时通过单击内部来编辑文本区域。为了排序,我将使用 jQuery可

排序与列表一起使用,即

    和包含

    1. 。通常此类问题是由不正确的 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/ 服务。

You have to provide some code for me if I should be able to help you.

(Note: If you are trying to drag the item while grabbing the textarea you should implement some switch to turn selection on/off. I would suggest a different approach where you can always edit the textarea by clicking inside. For sorting I would use a handle to grab.)

The jQuery sortable works with lists, that is <ul> and <ol> containing <li>. Often issues like this is caused by incorrect 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();

If you like to disable text-selection inside the list-item, do it on all text-elements. Not the textarea. Wrap text in p, span, div and call disableSelection() only on those elements.

It's also a good practice to validate html before troubleshooting scripts. I prefer the http://validator.w3.org/ service.

影子是时光的心 2024-11-03 13:12:42

这应该有效:

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();

This should work:

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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文