KendoUI - Создание / уничтожение сплиттера программно

В моем проекте мне нужно создавать и удалять сплиттеры на лету. Мы используем KendoUI.

Создание разделителей программно - это хорошо. Это удаление сплиттеров, о которых я беспокоюсь. Я посмотрел на API для управления сплиттером, и он имеет destroy метод, но это не удаляет виджет из DOM.

Я думаю, что единственный вариант для меня - это удалить его вручную из DOM. Поэтому я проверил, что функциональность разделителя элементов создает / изменяет, а затем возвращает его обратно в исходное состояние.

Это код, который я написал до сих пор:

HTML

<p>
<button id="createSplitter" type="button" class="k-button">Create Splitter</button>

<button id="destroySplitter" type="button" class="k-button">Destroy Splitter</button>
</p>

<div id="splitter">
    <div id="left">Left column</div>
    <div>Main content</div>
</div>

JavaScript

var leftPane = $("#left");
var splitterElement;
$("#createSplitter").click(function(e) {
splitterElement = $("#splitter").kendoSplitter({
    panes: [
        { collapsible: true, size: 200 },
        { }
    ]
});
});

$("#destroySplitter").click(function(e){
    var splitter = splitterElement.data("kendoSplitter");
    splitter.destroy();
    $('#splitter').removeClass('k-widget k-splitter').removeAttr('data-role');
    $('#splitter .k-splitbar').remove();
    $('#splitter .k-pane')
    .removeClass("k-pane k-scrollable")
    .removeAttr("style");
});

Я также создал скрипку для этой функции - https://jsfiddle.net/7gyfr1v6/3/.

Так что код выше работает. В скрипке, когда я нажимаю на Create Splitter, это создает их, и когда я нажимаю на Destroy Splitter, это удаляет функциональность сплиттера. Однако манипулирование CSS для достижения этого звучит немного странно.

Есть ли лучший способ сделать это? Если нет, есть ли какие-либо проблемы, которые вы видите в коде, который я написал, и можно ли улучшить этот код?

0 ответов

Другие вопросы по тегам