【问题标题】:Change helper ID更改助手 ID
【发布时间】:2011-07-21 11:15:37
【问题描述】:

我制作了一个可拖动、可排序的 div,我想要在拖动后更改克隆 ID,但我的脚本更改了原始 ID 和克隆 ID。我的代码如下:

var i = 0;
     $('#colum').draggable({

                            helper:'clone',
                            connectToSortable:'#sort',
                            start: function(event,ui) {
                            i++;
                            $(this).attr("id","colum"+i);
                           }
                          });   
          $('#sort').sortable({ 
                    connectWith: "#sort",
                    containment: "#sort" 
          )};

【问题讨论】:

  • 我尝试用 ui.helper 代替“this”,但结果相同
  • 有什么想法吗?使用 ui.draggable 也会改变原始 id 和克隆 id
  • 我不熟悉 UI 的那部分,但我建议你使用 console.log(this);看看它包含什么。如果只有#column,那么也许你在更改ID之后克隆它?
  • 您是否有理由要更改克隆的 ID?

标签: javascript jquery draggable jquery-ui-sortable helper


【解决方案1】:

您可以通过访问传递给start 事件的ui 变量来获取可排序助手 - ui.helper

$('#sort').sortable({ 
    helper: 'clone',
    start: function(event, ui) {
        ui.helper.attr('id', 'mycustomid'); //ui.helper is a jquery object pointing to the helper
    },
    connectWith: "#sort",
    containment: "#sort"
)};

【讨论】:

  • 是的,实际上它会改变它,但只有当我放下它时它被拖动时才会返回相同的 id
  • @user653826 这是因为克隆在拖动操作完成时被销毁,而原来的取代了它。如果你能告诉我为什么要更改克隆 ID,我可以给你一个更好的答案。
  • 只是因为在我的应用程序中,每个 bloc 都必须提供自己的 id,以便我以后可以修改它
  • @user653826 但仅在拖动时创建助手/克隆。拖动完成后不存在。您以后不需要修改它。如果你想给你的元素一个 ID,只需使用 html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
相关资源
最近更新 更多