我有一个使用sortable / nestedSortable的列表。我想要的是返回第二个属性。我的意思是除了默认的返回id(menuItem_n),我想返回第二个属性,例如data-type。我知道我可以自定义属性并更改默认属性(即id)但是如何添加额外属性。
例如:
<ol class="sortable">
<li id="menuItem_1" data-type="type_1">Item A1</li>
<li id="menuItem_2" data-type="type_1">Item A2</li>
<li id="menuItem_3" data-type="type_1">Item A3</li>
<li id="menuItem_4" data-type="type_2">Item B1</li>
<li id="menuItem_5" data-type="type_2">Item B2</li>
<li id="menuItem_6" data-type="type_2">Item B3</li>
</ol>
然后用类似的东西传递它:
$('ol.sortable').nestedSortable('serialize', {attribute: 'id, data-type'});
答案 0 :(得分:1)
好的,我错过了nestedSortable插件的内容。实际上我错过了它,因为它是update,但未添加到插件的文档中(尚未)。根据此更新,您现在可以将data- *属性添加到li元素,稍后可以使用 toHierarcy 输出返回。至于例子:
<ol class="sortable">
<li id="menuItem_1" data-type="type_1">Item A1</li>
<li id="menuItem_2" data-type="type_1">Item A2</li>
<li id="menuItem_3" data-type="type_1">Item A3</li>
<li id="menuItem_4" data-type="type_2">Item B1</li>
<li id="menuItem_5" data-type="type_2">Item B2</li>
<li id="menuItem_6" data-type="type_2">Item B3</li>
</ol>
所以当你使用:
$('ol.sortable').nestedSortable('toHierarchy');
您将返回一个字符串,如:
array (
'id' => '1',
'type' => 'type_1',
),
1 =>
array (
'id' => '2',
'type' => 'type_1',
),
2 =>
array (
'id' => '3',
'type' => 'type_1',
),
3 =>
array (
'id' => '3',
'type' => 'type_2',
),
4 =>
array (
'id' => '4',
'type' => 'type_2',
),
5 =>
array (
'id' => '5',
'type' => 'type_2',
)
当然你必须在之后将字符串转换为数组,这不是什么大问题。 只需将结果抛出一个变量即可得到你的数组。注意,id仍然是分开的,这样你只得到数字部分,但你会得到data- *属性作为一个整体。