jquery-ui - jqueryui - Draggable 在拖动到可排序时会丢失 id 属性

标签 jquery-ui jquery-ui-sortable jquery-ui-draggable

我正在使用 jqueryui 的可拖动和可排序功能。我的jqueryui版本是1.9.1,jquery版本是1.7.1

我有一组可拖动的项目,以及一个可排序的容器。我将可拖动项目拖动到可排序容器,并希望在可排序的停止处理程序中读取可拖动项目的 id 属性。然而,事实证明,身份在那里是不设防的。

$(sortableselector).sortable({
    stop: function(event, ui) {
        alert(ui.item.attr('id'));
    }
});

$(draggableselector).draggable({
    revert: true,
    revertDuration: 0,
    connectToSortable: 'sortableselector',
});

打印未定义。我看过几篇指出此错误的帖子,但尚未解决。我怎样才能在那里获得拖动项目的ID?

最佳答案

我使用 jQuery UI 1.9.1 测试了 jQuery 1.7.1,并且能够使用下面的代码片段复制该问题。我无法用现代版本复制这个问题。看起来它在过去 11 年的某个时间点已得到纠正。

$(function() {
  $("#sortable").sortable({
    stop: function(event, ui) {
      console.log(ui.item);
    }
  });

  $("#draggable").draggable({
    revert: true,
    revertDuration: 0,
    connectToSortable: "#sortable",
  });
});
#sortable {
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 60%;
}

#sortable li {
  margin: 0 3px 3px 3px;
  padding: 0.4em;
  padding-left: 1.5em;
  font-size: 1.4em;
  height: 18px;
}

#sortable li span {
  position: absolute;
  margin-left: -1.3em;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>

<ul id="sortable">
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
</ul>
<div id="draggable" class="ui-widget-content">
  <p>Drag me around</p>
</div>

关于jquery-ui - jqueryui - Draggable 在拖动到可排序时会丢失 id 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012149/

相关文章:

javascript - Jquery Draggable - 在浏览器刷新时保持位置

javascript - 将类添加到 jQuery draggable and droppable 中的可放置项目

jquery - 使用 JQuery 将第二个工具栏添加到 JQGrid

javascript - jQuery EasyUI : confirmation on close window

jquery - jQuery 遍历帮助

javascript - jquery-sortable 不稳定子排序

jquery - 上传后可排序的图像 - jQuery 文件上传

javascript - 当我升级到 jQuery 1.12.1 时,覆盖不起作用

javascript - jQuery .val() 方法只给我第一个输入的值

jquery-ui - jquery draggable & droppable 获取源容器(那个draggable来自)