Как плагин JQuery можно перезагрузить / перерисовать / обновить, чтобы обновить его значения? - PullRequest
5 голосов
/ 03 апреля 2012

У меня есть сомнения, что это легко сделать, но я не могу найти, как это сделать.Можно ли перезагрузить плагин JQuery без обновления всей страницы, чтобы он мог обновить свои значения?Я читал похожие вопросы, но они предназначены для конкретных подключений!Я хотел бы знать, знает ли кто-нибудь «универсальный» способ сделать это, чтобы он мог использоваться во многих плагинах JQ.Должен быть способ сделать это наверняка ...

В любом случае, более конкретно, я задаю этот вопрос, чтобы перезагрузить Дерево файлов JQuery У меня есть это:

JAVASCRIPT

$(document).ready( function() {
    $('#fileTree').fileTree({
        root: '/some/path/to/somewhere/',
        script: 'js/jqueryFileTree-1.01/connectors/jqueryFileTree.php',
        folderEvent: 'click',
        expandSpeed: 1000,
        collapseSpeed: 1000,
        multiFolder: false,
        loadMessage: 'Loading...'
        }, function(file) {
            relativePath=file.replace("/some/path","");
            aFunction(relativePath, file);
        });
    });

HTML

<div id="fileTree" class="fileTree"></div>

В определенный момент у меня есть код AJAX + PHP, который позволяет мнеудалить выбранный файл.Это хорошо работает!НО файл, который был удален, все еще показан в дереве файлов.Если я добавлю window.location.reload() в моем событии успеха в этой функции, очевидно, что вся страница будет перезагружена, и мое дерево покажет фактические файлы в папке, как и предполагалось.

Вопрос: Есть ли способперезагрузите его, не обновляя всю страницу ???

Обратите внимание, что автор этого плагина сказал мне в Twitter:

@ metafaniel Проблема в том, что он больше не используется влюбой из наших проектов.Это старый, старый сценарий, который нуждается в капитальном ремонте.via @ abeautifulsite

@ metafaniel Вы должны добавить это самостоятельно.Поскольку плагин очень старый, у него нет полного API.via @ abeautifulsite

У меня нет больше времени в офисе, чтобы переписать свой код с помощью другого плагина, я должен закончить это!Есть идеи?Пожалуйста, помогите мне, СПАСИБО =)

1 Ответ

1 голос
/ 08 апреля 2016

Что ж, если ОП запрашивает прямую команду плагина, чтобы сделать это, я боюсь, что она может не существовать.Вот мое решение, которое работает довольно хорошо.Что вы делаете, это оборачиваете свой пустой <div id="jstree"></div> в родительский div, что-то вроде этого:

<div id="file-tree-holder">
    <div id="jstree" ></div>
</div>

Затем, в вашем javascript, непосредственно перед созданием вашего плагина, вы очищаете содержимое родительский div , а затем переписать целевой div в родительском div, например:

        $('#file-tree-holder').html('');
        $('#file-tree-holder').html('<div id="jstree" ></div>');
        $('#jstree').fileTree({
            script: '/ajax/file_tree2/' + path,
            multiFolder: true,
            expandSpeed: 250,
            collapseSpeed: 250,
            loadMessage: 'Loading...'
        });

... и он работает довольно хорошо.

...