Две подписки в библиотеке Sortable js кажутся несовместимыми: «Store» и «Disabled». Они работают отдельно, но не вместе. Это проблема «объема»? - PullRequest
0 голосов
/ 26 февраля 2020

Я успешно использовал опцию STORE для сортируемой библиотеки js здесь: https://jsfiddle.net/6u78dmkg/.

var myel = document.getElementById("list");
    Sortable.create(myel, {
        group: "localStorage-example",
        store: {
        get: function (sortable) {
            var order = localStorage.getItem(sortable.options.group.name);
            return order ? order.split('|') : [];
        },      
        set: function (sortable) {
            var order = sortable.toArray();
            localStorage.setItem(sortable.options.group.name, order.join('|'));
        }
    }
}) 

Я также успешно использовал опцию DISABLE для сортируемой библиотеки js здесь : https: https://jsfiddle.net/53dfrtvw/ со следующим кодом:

var sortable = Sortable.create(list);

switcher.onclick = function () {
    var state = sortable.option("disabled"); // get

    sortable.option("disabled", !state); // set

    switcher.innerHTML = state ? 'disable' : 'enable';
};

Но мне не удается получить оба сразу: https://jsfiddle.net/x9m6c7ps/

var myel = document.getElementById("list");
    Sortable.create(myel, {
        group: "localStorage-example",
        store: {
        /**
         * Get the order of elements. Called once during initialization.
         * @param   {Sortable}  sortable
         * @returns {Array}
         */
        get: function (sortable) {
            var order = localStorage.getItem(sortable.options.group.name);
            return order ? order.split('|') : [];
        },

        /**
         * Save the order of elements. Called onEnd (when the item is dropped).
         * @param {Sortable}  sortable
         */
        set: function (sortable) {
            var order = sortable.toArray();
            localStorage.setItem(sortable.options.group.name, order.join('|'));
        }
    }
}) 

var sortable = Sortable.create(document.getElementById("list")); 

var sortable = Sortable.create(list);

switcher.onclick = function () {
    var state = sortable.option("disabled"); // get

    sortable.option("disabled", !state); // set

    switcher.innerHTML = state ? 'disable' : 'enable';
};

Будет лучше, если сначала появится DISABLE (STORE работает), но мне не удалось получить их оба одновременно. Я был бы очень осведомлен о том, почему они не будут работать вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...