2010-09-29 14 views
0

我想在JQuery UI中有類似於可排序的手風琴,它可以自動排序,即活動的手風琴面板(打開的 - 最後一次點擊)自動移動到手風琴的頂部。JQuery UI可自動排序的Accordian - 這可能嗎?

任何想法?

這裏的鏈接到JQ UI頁面:http://jqueryui.com/demos/accordion/#sortable

謝謝!

這裏是我(在回覆托馬斯)代碼:

$(function() { 
    var stop = false; 
    $("#ccaccordion h3").click(function(event) { 
     if (stop) { 
      event.stopImmediatePropagation(); 
      event.preventDefault(); 
      stop = false; 
     } 
    }); 

    $("#ccaccordion") 
     .accordion({ 
      header: "> div > h3", 
      autoHeight: false, 
      "option", 
      "change", 
      function(event, ui){ 
       ui.newHeader.parent().prependTo(this); 
      } 
     }) 
     .sortable({ 
      axis: "y", 
      handle: "h3", 
      stop: function() { 
       stop = true; 
      } 
     }); 

}); 

回答

1

這個代碼添加到演示的例子:

$('#accordion') 
    .accordion(
    'option', 
    'change', 
    function(event, ui){ 
     ui.newHeader.parent().prependTo(this); 
    } 
); 

編輯:

代碼的修改:

$(function() { 
    var stop = false; 
    $("#ccaccordion h3").click(function(event) { 
     if (stop) { 
      event.stopImmediatePropagation(); 
      event.preventDefault(); 
      stop = false; 
     } 
    }); 

    $("#ccaccordion") 
     .accordion({ 
      header: "> div > h3", 
      autoHeight: false, 
      change: 
       function(event, ui){ 
       ui.newHeader.parent().prependTo(this); 
       } 
     }) 
     .sortable({ 
      axis: "y", 
      handle: "h3", 
      stop: function() { 
       stop = true; 
      } 
     }); 

}); 
+0

嗨托馬斯!感謝您的回覆。我已經用我的代碼更新了我的帖子,不確定是否正確 - 我的js不是很好。我在Firebug控制檯中出現這個錯誤'丟失:在屬性ID後 [打破這個錯誤]功能(事件,用戶界面){\ n'和手風琴壞了? – Robimp 2010-09-29 14:19:09

+0

不知道您是否在編輯的答案中收到通知,所以我發佈此評論以通知您。 – Thomas 2010-09-29 14:49:06

+0

美麗!現在完美的工作,並感謝通知,我在這裏拉我的頭髮試圖弄清楚。我真的必須在JavaScript中變得更好。 – Robimp 2010-09-29 15:04:36

2

I意識到這是一個較老的線索,但我發現,將「更改」更改爲「changestart」會導致幻燈片在排序發生後發生,這在我看來看起來更好。

如果你願意爲我做的有滑走位的排序有後,你可以改變這一點:

$('#accordion') 
    .accordion(
     'option', 
     'change', 
    function(event, ui){ 
     ui.newHeader.parent().prependTo(this); 
    } 
); 

要這樣:

$('#accordion') 
    .accordion(
     'option', 
     'changestart', 
    function(event, ui){ 
     ui.newHeader.parent().prependTo(this); 
    } 
); 

它添加到jQuery UI的手風琴排序演示和標題點擊會A.立即排序自己的頂部,並B.幻燈片打開。