Mam element listy do sortowania jQuery UI, który jest dynamicznie wypełniany z żądania Ajax.jQuery UI Sortable - Błąd: nie można wywołać metod sortable przed inicjalizacją; próbował wywołać metodę "disable"
Obecnie workflow idzie
- Użytkownik kliknie przycisk, lista jest pusta i klasyfikowane według określonych ustawień.
- Użytkownik klika inny przycisk,
- istniejącej listy
<li>
elementy są usuwane przezjQuery.empty()
rozmowy - Nowe wartości danych są wstawiane do nowych
<li>
lista elementów i dołączane do<ul>
listy - Sortable lista jest odświeżana poprzez $ (” #sortable "). sortable (" refresh ");
- istniejącej listy
Biorąc pod uwagę Sortable lista obiektów $("#avail_list").sortable(...);
, chcę mieć draggable
nieruchomość Poszczególne elementy listy wyłączone i ustawić krycie do 0,5 na podstawie istniejących wartości w innych elementach.
Aby to zrobić, mam następujące funkcje:
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);
}
}
Jednak to powoduje błąd
Error: cannot call methods on sortable prior to initialization;
attempted to call method 'disable'
Odkąd zwanego refresh
na liście sortable przed wyłączanie elementów, jak czy obiekt sortable
nie może zostać zainicjowany?
zadzwonić sortable na '$ („# avail_list”)', ale swoją tablicę elementy będą zawierać coś w rodzaju '$ („#”)' listopen_1 chociaż nie jestem pewna, bo nie wiem jaka jest zmienna 'list' jako. Może spróbuj dodać '$ (" # "+ elementy [i]). Sortable (" refresh ");' przed próbą wyłączenia? – JLewkovich