В методе makeSortable
есть ошибка, которая приводит к неверному селектору jQuery.
Вот метод (я удалил не соответствующий код):
makeSortable : function () {
var iNettuts = this,
...
$sortableItems = (function () {
var notSortable = '';
$(settings.widgetSelector,$(settings.columns)).each(function (i) {
if (!iNettuts.getWidgetSettings(this.id).movable) {
if(!this.id) {
this.id = 'widget-no-id-' + i;
}
notSortable += '#' + this.id + ',';
}
});
// when "notSortable" is empty, the selector
// is "> li:not()" which is invalid
return $('> li:not(' + notSortable + ')', settings.columns);
})();
...
}
$sortableItems
получается (с функцией автозапуска) путем проверки опции movable
виджетов и возврата отфильтрованного списка с помощью псевдо-селектора :not()
.
Проблема в том, что когда все виджетыявляются подвижными, переменная notSortable
будет пустой, и это приведет к недопустимому селектору jquery > li:not()
.
Это происходит при удалении определенных настроек для виджета погоды.Погода имеет movable: false
.Если вы удалите настройки, все виджеты будут подвижными, и возникнет ошибка.
Измените оператор возврата, чтобы использовать :not()
только когда notSortable
не пусто:
return $('> li' + ( notSortable && notSortable !== '' ? ':not(' + notSortable + ')' : '' ), settings.columns);
DEMO