2010-03-29 13 views
0

J'essaie d'utiliser jquery pour implémenter une interface de style portlet/widget, avec 3 colonnes et glisser-déposer entre eux et entre eux. il travaille presque complètement, sauf problème que cela ne fonctionne pas dans IE6aider avec jquery ui.helper [0] = null dans IE6

(function($) { 
    $.fn.portlet = function() { 
    return this.each(function() { 
     $(this).sortable({ 
     connectWith: ['.portletColumn'], 
     handle: 'h3', 
     placeholder: 'drop', 
     forcePlaceholderSize: true, 
     start: StartDrag, 
     stop: StopDrag 
     }); 
    }); 
    }; 

    function StartDrag(event, ui) { 
    try { 
     //in ui.helper[0] is null and hence the issue 
     //alert(ui.helper[0]); 
     currentlyDraggedNode = this; 
     alert(currentlyDraggedNode); 
     ('.drop').css('height', jQuery(ui.helper[0]).outerHeight() + 'px'); 
     $('.portletColumn').css('background-color', '#eee'); 
    } catch (ex) { } 
    } 

    function StopDrag(event, ui) { 
    try { 
     $('.portletColumn').css('background-color', '#fff'); 
     UpdateOrder(); 
    } catch (ex) { } 
    } 

    function GetString(selector) { 
    var querystring = ""; 

    $(selector).each(function() { 
     var id = $(this).attr('id'); 

     if (id && id != '') { 
     querystring += id + ';' 
     } 
    }); 

    return querystring; 
    } 

    function UpdateOrder() { 
    var querystring = GetString('#col1 .portletColumn .portlet') + '|;' + GetString('#col2 .portletColumn .portlet') + '|;' + GetString('#col3 .portletColumn .portlet'); 
    $.get("/handlers/portlet.ashx?" + querystring); 
    } 
})(jQuery); 

Répondre

1

puis-je vous demander pourquoi vous utilisez jQuery(ui.helper[0]) au lieu de jQuery(ui.helper)? Tout le code que je vois dans la source de l'interface utilisateur de jQuery s'y réfère de cette manière

+0

sinon certains navigateurs javascript error –