2013-08-07 77 views
0

我需要在後臺加載UL,然後將其顯示在對話框中進行排序,但我是JQuery/JQuery UI的新手,並且顯然與Google有問題。這是據我已經有了:如何在JQuery UI對話框中對可加載ajax的UL進行排序?

$(document).on('click','a.priority', function(){ 
    // Get the URL of the link 
    var href = $(this).attr('href'); 
    // Tell the page to expect JS instead 
    href = href + "/ajax"; 
    // Get the page content 
    $.get(href, function(data){ 
     // Initialise a dialog for the content 
     var my_dialog = $('<div></div>') 
      .dialog({ 
       autoOpen: false 
       ,open: function (event, ui) { 
        // Add the result of the GET (a UL) as the dialog's content 
        my_dialog.html(data); 
        // Make it sortable, how? 
        my_dialog.sortable().disableSelection(); 
        // Set the dialog title (this will be dynamic later, and we might need to call a single dialog that gets remangled rather than creating one every time) 
        my_dialog.dialog("option","title","Change priority"); 
       } 
      }); 
     // Show the dialog 
     wsd_dialog.dialog('open'); 
    }); 
    // Don't follow the link 
    return false; 
}); 

這將抓住內容(即需要整理物品的UL),並在對話框出現了 - 但UL顯示爲一個單一的「排序」元素。

如何讓UL的李孩子排序,而不是UL本身?

有一種感覺,這是一個愚蠢的問題,我必須缺少的東西文檔。

+0

看起來像在調用對話框上的sortable()。你需要在對話框中選擇列表項並調用'sortable()'。 –

+0

我應該更清楚 - 這就是我所要求的。我試圖把一個( 'UL')選擇在 「my_dialog.sortable()disableSelection();」。 'my_dialog'之後 - 但也許它應該是「my_dialog.html.some-other-thing。('ul')。sortable()」。 –

+1

嘗試'my_dialog.find(「UL」)排序();' –

回答

1

看起來你調用的對話框上sortable()。您需要選擇對話框中的列表項並在這些對象上調用sortable()

my_dialog.find('ul').sortable();