开发者

jQuery + Sortable + live

I'm adding list items to a page dynamically with $.get, then appending them to the OL element. Pretty usual to this point.

But jQuery isn't aware of these new items when they get loaded into the page, and I'm not being able to make them sortable.

I made some trials 开发者_JAVA技巧with jQuery Live, but didn't get anywhere whit that...


The refresh method of .sortable() does not seem to recognize li's which are NOT added via the .sortable() functions.

Try adding your .sortable() initialisation code into a function which you call on document ready AND in you code where you dynamically add li's.

Instead of:

jQuery(document).ready(function() {
    jQuery("#mySortableOL").sortable({
        ...
    });
}
...
jQuery("#mySortableOL").append(...);
jQuery("#mySortableOL").sortable("refresh");

Try something like:

jQuery(document).ready(function() {
    jQuery("#mySortableOL").doSort();
}
...
jQuery("#mySortableOL").append(...);
doSort();
...
function doSort(){
    jQuery("#mySortableOL").sortable({
        ...
    });
}


Did you try .sortable('refresh')? http://docs.jquery.com/UI/Sortable#method-refresh


on the tail end of your code just append .sortable({}); with all your parameters respecified. There's probably a way to do this without duplicating your code by using a function or something, but at least this works.

$('#List').live('click',function(e){

var myHTMLcode = '<li>New Item</li>'

myHTMLcode.appendTo('#List').sortable({
 items  : 'li',
 axis  : 'xy',    

 update  : function(event, ui){SPECIFIC Sortable FUNCTION CODE HERE}).fadeIn();
)};


I found this solution and working fine for me.

makesortable = function(){
        $( "#mylist" ).sortable({
            ...
        })
      };
...
// after list refresh :
makesortable();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜