【问题标题】:using THIS with jquery sortable serialize将 THIS 与 jquery 可排序序列化一起使用
【发布时间】:2013-03-25 08:20:55
【问题描述】:

我有这个代码

$('.contentlist_tosort').sortable({
    update: function(event, ui) {
        $.post("ajax.php", { pages: $('.contentlist_tosort').sortable('serialize') } );
    }
});

但我希望它是通用的,因为我使用类来调用可排序,并且不想将 id 放在列表中,因为它们的数量未知。

我想要这样的东西:

$('.contentlist_tosort').sortable({
    update: function(event, ui) {
        $.post("ajax.php", { pages: $(this).sortable('serialize') } );
    }
});

但这给我留下了“未定义”,所以显然不是这样......

有可能吗?

【问题讨论】:

    标签: javascript jquery serialization jquery-ui-sortable


    【解决方案1】:

    使用ui.item 而不是this

    See the API Docs

    例如:

    $('.contentlist_tosort').sortable({
        update: function(event, ui) {
            var sortable = $(ui.item).parent('ul');
            $.post("ajax.php", { pages: sortable.sortable('serialize') } );
        }
    });
    

    【讨论】:

      【解决方案2】:

      事件目标是 UL:

      $('.contentlist_tosort').sortable({
          update: function(event, ui) {
              $.post("ajax.php", { pages: $(event.target).sortable('serialize') } );
          }
      });
      

      【讨论】:

      • event.target 将引用列表项而不是列表。
      • @Neal - 不,ui.item 指的是拖动的列表项,event.target 指的是绑定的元素,-> Fiddle
      • @Neal - 有点奇怪event.target 实际上是绑定元素,因为它通常是this,并且它不是你所期望的当前拖动的元素@ 987654328@ 是,但在可排序、可拖动等内部,出于某种原因,它实际上是这样完成的!
      • 是的......因此我最初认为event.target 是列表项......确实很奇怪。
      • 感谢你们俩。一开始我无法让它工作,然后我意识到 li 的 id 标签不能以数字开头(
      • 不起作用),我不能只放数据库 id在那里,我首先需要一个这样的名称:
      • .
      猜你喜欢
      相关资源
      最近更新 更多
      热门标签