Как проверить, отсортирован ли конкретный список? Как $('#list').is(':sortable')
...?
Если мы будем использовать
if ($('#list').sortable())
тогда список будет снова отсортирован и не будет проверяться, действительно ли он сортируется.
Как проверить, отсортирован ли конкретный список? Как $('#list').is(':sortable')
...?
Если мы будем использовать
if ($('#list').sortable())
тогда список будет снова отсортирован и не будет проверяться, действительно ли он сортируется.
Если список уже сортируется, тогда он должен иметь класс ui-sortable
.
Вы можете использовать if ($('#list').hasClass('ui-sortable'))
, чтобы проверить его.
Я только что узнал, с интерфейсом данных он тоже работает:
if ($( '#sortable' ).data( 'sortable' )) {
// sortable instance exists
}
После версии 2012 года произошла смена версии jQuery, поэтому теперь вы можете написать:
if ($( '#sortable' ).data( 'ui-sortable' )) {
// sortable instance exists
}
или
if ($( '#sortable' ).is(':ui-sortable')) {
// sortable instance exists
}
При применении Сортировки просто добавьте фиктивный класс к этому элементу, как это,
$( "#sortable" ).sortable();
$( "#sortable" ).addClass("antguider");
Затем, если вы хотите проверить, что элемент сортируется, тогда проверьте, как это,
if($( "#sortable" ).hasClass("antguider")){
alert("Already Sort Applied");
}
Я нашел в Safari (возможно, другие) классы ненадежны. "ui-sortable" остается на любом элементе, который был сделан сортируемым, даже если вы его отключили, что приводит к использованию классов "ui-sortable ui-sortable-disabled".
Я обнаружил, что сам добавляю и удаляю классы, чтобы убедиться, что они такие, как я ожидал.
if ($(this).hasClass("ui-sortable")) {
$(this).removeClass("ui-sortable");
$(this).sortable({ disabled: true });
}
else {
$(this).addClass("ui-sortable");
$(this).sortable({ disabled: false });
}
- EDIT
Хорошо, поэтому классы надежны, но то, что мне было после, не отключено, а скорее .sortable( "destroy" ), который возвращает элемент к нему до инициализации (т.е. удаляет все вспомогательные классы).
Итак, для моего сортируемого переключения (именно это я и создаю):
if ($(this).hasClass("ui-sortable")) $(this).sortable("destroy");
else $(this).sortable();
Вы можете проверить мой ответ здесь fooobar.com/info/463026/...
Просто вызовите экземпляр sorttable, если return undefined, то не загружен
if (typeof $("ul.sortable").sortable('instance') != 'undefined') {
//$.ui.sortable is loaded and called
} else {
//call sortable
}