jQuery UI Sortable - Erreur: impossible d'appeler des méthodes sur sortable, avant de l'initialisation; tenté d'appeler la méthode "désactiver"

J'ai un jQuery UI Sortable élément de la liste qui est rempli dynamiquement à partir d'une requête Ajax.

Actuellement, le flux de travail va

  1. Utilisateur clique sur le bouton, la liste est remplie et triée selon les paramètres spécifiés.
  2. Utilisateur clique sur un autre bouton,
    1. Liste existante <li> éléments sont effacés par jQuery.empty() appel
    2. Les nouvelles valeurs des données sont insérés dans de nouveaux <li> éléments de la liste et annexé à la <ul> liste
    3. Liste triable est actualisé par $("#sortable").sortable("refresh");

Donné une liste Triable objet $("#avail_list").sortable( ... );, je veux avoir la liste précise des éléments draggable bien désactivé et une opacité de 0.5 basée sur les valeurs existant dans d'autres éléments.

Pour ce faire, j'ai la fonction suivante:

var disabled = [];
var appendString = ""
if (avail.length > 0) {
  for (var i = 0; i < avail.length; i++) {

    //check if current list element exists in existing value list. True results
    //in grayed out and non-draggable element
    compareMatch = checkMatch(avail[i], compare);

    if (compareMatch)
      disabled.push(list + "open_" + avail[i].id);


    appendString += "<li id = "+ list + "open_" + avail[i].id + 
      " class = 'avail_list_element'><img class = 'logo' src = /static/images/vendor_logo/" + avail[i].icon + " /></li>"
  }

  $("#avail_list").append(appendString);

} 

$("#avail_list").sortable("refresh");   

if (disabled.length > 0)
    disableDraggable(disabled);

function disableDraggable(elements){
  for (var i = 0; i < elements.length; i++) {
    console.log(elements[i])
    $("#" + elements[i]).sortable("disable");
    $("#" + elements[i]).fadeTo("fast", 0.5);
  }
}

Toutefois, cela entraîne une erreur

Error: cannot call methods on sortable prior to initialization; 
attempted to call method 'disable'

Depuis j'ai appelé refresh sur la liste triable avant de désactiver les éléments, comment peut - sortable objet de ne pas être initialisé?

Vous appelez sortable sur $("#avail_list") , mais vos éléments de tableau contiendra quelque chose comme $("#listopen_1") bien que je ne suis pas sûr exactement parce que je ne sais pas ce que le list variable est définie. Peut-être essayer d'ajouter $("#" + elements[i]).sortable("refresh"); avant de vous essayez de le désactiver?

OriginalL'auteur Jason | 2013-08-19