jQuery .load () не надежно загружает js-файлы при перемещении по дереву DOM - PullRequest
0 голосов
/ 07 августа 2009

Ужасно сформулированный вопрос, я знаю ...

Я пытаюсь загрузить страницу в div внутри asp: listview. Страница загружается нормально с первой попытки, но последующие загрузки, похоже, не запускают файл jquery.ui.js для табуляции загруженной страницы.

Я переместил вызов на вкладку загруженной страницы в функцию обратного вызова функции .load (), но это не решило проблему лучше. Код следует:

$(".clientModal").click(function() {
            var clientID = $(this).attr("title");
            if ($(this).hasClass("highlight")) {
                $('#ClientPanel' + clientID).slideToggle(200);
            }
            else {
                $('#ClientPanel' + clientID).load("Details.aspx?id=" + clientID, null, function() {
                    $("#clientTabs").tabs();
                    $('#ClientPanel' + clientID).slideToggle(200);
                });
            }
            $(this).toggleClass("highlight");
        });

Это внутри функции pageLoad (), так как мы также используем Microsoft Ajax и хотим сделать это на pageLoad, а не на document.ready. Любые идеи относительно того, почему jquery.ui будет хорошо работать при начальной загрузке, но не при последующих загрузках? Спасибо!

Редактировать! Позвольте мне добавить некоторую информацию здесь. Я заметил, что если я вернусь вверх из нижней части экрана, щелкая ссылки, он будет работать как надо, показывает вкладки и работает правильно. Однако, если я иду сверху вниз, это работает для первого щелчка, а затем для последующих щелчков ВНИЗ дерево не работает правильно, однако, нажимает ВВЕРХ, дерево делает.

Я абсолютно сумасшедший здесь? :)

Ответы [ 2 ]

0 голосов
/ 08 августа 2009

Проблема заключалась в вызове идентификатора clientTabs. При перемещении вверх по дереву у него не было проблем, потому что он нашел первый экземпляр #clientTabs и применил пользовательский интерфейс, а при движении вверх первым был тот, который я хотел. При перемещении вниз первый экземпляр #clientTabs НЕ был тем, который я вызывал, поэтому он не работал.

Итак, переключился на ссылку на класс ($ (". ClientTabs")), и теперь он работает прекрасно. Иногда классы лучше, чем идентификаторы ...

0 голосов
/ 07 августа 2009

Попробуйте загрузить файлы jquery.ui вместе с загруженной страницей, а также со страницей, которая ее загружает. Загруженная страница может не знать jquery.ui.

...