【问题标题】:jquery draggable to sortablejquery可拖动到可排序
【发布时间】:2009-11-02 14:28:46
【问题描述】:
我创建了一个可排序的列表和一个可拖动的项目来添加新项目。
我有一个删除按钮,当我从可拖动项中添加新项目时,我希望它可见。
如何连接事件?
这是从可拖动对象拖到可排序对象的元素。
<a id="btn" class="ContentItemSelect" >
<span title="Remove" class="ContentItemRemove" id="Remove"></span>
</a>
【问题讨论】:
标签:
jquery
jquery-ui-sortable
draggable
【解决方案1】:
Sortable 包含一个名为 receive 的选项,它允许您定义一个在添加项目时将调用的函数。
假设您尝试做的是取消隐藏跨度,您可以执行以下操作。如果这不是您的意图,应该很清楚如何将其转移到另一个用例。
$("#sortable").sortable({
receive: function(event, ui) {
$("#" + $(ui.item).attr("id")).find(".ContentItemRemove").show();
}
});
我不完全确定 $("#" + $(ui.item).attr("id")) 部分,因为它看起来过于复杂并且显然假设您添加的任何对象都有唯一的 id (无论如何它应该,但仍然值得一提)。它在我拥有的一段旧代码中运行良好,但我猜它可以简化。
【解决方案2】:
我们确实需要更多的标记和相关的 javascript 来提供有用的答案,但通常您只需组装所需的 HTML 并将其附加到您创建的项目中。
不过,需要快速补充说明 - 您使用的是可疑的通用 ID。你知道每个页面只能有一个唯一的 id,所以一旦你添加了一个 id 为“btn”的元素和一个 id 为“remove”的跨度,你就不能再添加相同的元素了id 到其他拖动的元素?