移动列表项并在jQuery中恢复它

时间:2018-01-27 10:15:42

标签: jquery twitter-bootstrap list append bootstrap-4

以下代码将列表项移动为小屏幕宽度上的最后一项:

$(document).ready(myfunction);
$(window).resize(myfunction);

function myfunction() {
    if (xs == true) {
        $('ul.page-nav-list').find('li.active').appendTo('ul.page-nav-list');
    } else {
        // how to get back to the original state
    }
}

我的问题:如何将列表项恢复为原始状态以获得大分辨率?

我使用 Bootstrap 4 Breakpoint 插件来检测分辨率。

1 个答案:

答案 0 :(得分:1)

像这样的东西

var orgIndex = 0;
$(function(){
  orgIndex=$('ul.page-nav-list').find('li.active').index();
  myFunction();
});
$(window).resize(myFunction);
xs=true;
function myFunction() {
  if (xs) {
    $('ul.page-nav-list').find('li.active').appendTo('ul.page-nav-list');
  } else {
    $('ul.page-nav-list').find('li.active').appendToWithIndex($('ul'),orgIndex)

  }
}
//https://stackoverflow.com/a/18593267/295783
$.fn.appendToWithIndex = function(to, index) {
  if (!to instanceof jQuery) {
    to = $(to);
  };
  if (index === 0) {
    $(this).prependTo(to)
  } else {
    $(this).insertAfter(to.children().eq(index - 1));
  }
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<ul class="page-nav-list">
  <li class="active">Active</li>
  <li>Inactive</li>
  <li>Inactive</li>
  <li>Inactive</li>
</ul>