重新排序<li>标签元素</li>后,标签(链接)将被破坏

时间:2012-08-04 16:26:18

标签: jquery jquery-ui

我正在使用jquery-ui tabs()。 Evertihng工作得很好 然后我通过jquery重新排序了DOM中的标签。

在:

<li id="L1">Tab 1</li>
<li id="L2">Tab 2</li>

后:

<li id="L2">Tab 2</li>
<li id="L1">Tab 1</li>

当我悬停我的标签时,它们会显示指向content-div的正确链接。 但是点击选项卡没有任何事情发生。

任何人都知道我的错吗?

编辑:我的重新排序li元素的代码:

$(document).ready(function() {
  var elems = $('#tabsUl').children('li').remove();

  elems.sort(function(a,b){
    return parseInt($(a).attr("data-order")) > parseInt($(b).attr("data-order"));
  });

  $('#tabsUl').append(elems);
});​

标记示例:

<ul id="tabsUl">
  <li data-order="4">Item 4</li>
  <li data-order="2">Item 2</li>
  <li data-order="3">Item 3</li>
  <li data-order="1">Item 1</li>
</ul>

1 个答案:

答案 0 :(得分:1)

使用.detach()代替.remove()

var elems = $('#tabsUl').children('li').detach();

文档:

  

<强> .detach()

     

.detach() 方法与 .remove() 相同,只是 .detach() 保留所有与删除的元素关联的jQuery数据。当删除的元素稍后要重新插入DOM时,此方法很有用。