1

我有一个 HTML 列表

<ul id="sections" class="ui-sortable">
  <li class="selected">one</li>
  <li> two</li>
  <li>three</li>
  <li> four  </li>
  <li>five</li>
  <li> six </li>
</ul>

该列表可使用 jQuery UI 进行排序。

最初,第一个列表项有一个“选定”类。如果用户拖动任何项目并更改列表的顺序,则在新位置放置的列表项应具有“已选择”类,并且应删除任何其他“已选择”列表项类。

在任何时间点都只能有一个“已选择”类的列表项。

如何实现这一点,我正在尝试使用 beforestop、stop、change 事件,但我无法弄清楚

  $( "#sections" ).sortable({
              stop: function( event, ui ) {

                    var present = $(ui.item).addClass("selected");
                    console.log(present);
                  }
            });
4

2 回答 2

2

尝试这个

stop: function( event, ui ) {
                  $(this).find('.selected').removeClass("selected")

                    var present = $(ui.item).addClass("selected");
                    console.log(present);
                  }

演示

于 2013-08-01T14:29:01.983 回答
1

使用 .siblings()

 $( "#sections" ).sortable({
      stop: function( event, ui ) {
        $(ui.item).addClass("selected").siblings().removeClass('selected');
      }
 });

演示

于 2013-08-01T14:24:42.200 回答