将最后一个选项卡添加到可排序的选项卡列表中

我正在使用twitter bootstrap,knockout,knockout-sortable和JQuery UI(也是haml,但它对这个问题无关紧要)。 我显示如下的选项卡列表。 它添加了一个带有按钮的最终选项卡。

%ul.nav.nav-tabs /ko foreach: pages %li %span{ "data-bind" => "text: name()" } / /ko %li %button.btn %i.icon-plus 

我正在尝试使标签排序(通过拖动),但我遇到按钮问题:

 %ul.nav.nav-tabs{ "data-bind" => "sortable: pages" } %li %span{ "data-bind" => "text: name()" } /%li / %button.btn / %i.icon-plus 

我不能使用/ko sortable: pages因为它不起作用( The binding 'sortable' cannot be used with virtual elements )。 如何实现具有可排序性的相同效果(最后一个标签是按钮)? 但是无法移动最终的选项卡/按钮。

答案可能不一定是添加选项卡,它可能是添加一个显示在选项卡末尾的元素。

更新:

JSFiddle: http : //jsfiddle.net/pbNvz/6/

自定义绑定可以为您完成工作,这里是更新的小提琴:

http://jsbin.com/edopuh/3/edit

为了从可排序元素中排除任何特定的li元素,您可以使用jquery ui sortable plugin的items选项,它接受jquery选择器。

更新

为了在移动项目后执行某些操作,您可以使用jquery ui sortable的Update事件 。 检查这个更新的小提琴,在这个小提琴移动项目后你会得到警报:

更新小提琴