Застрял перезагрузка ajax-контента в jQuery Tab программно - PullRequest
0 голосов
/ 23 мая 2009

Я очень новичок в программировании, поэтому, пожалуйста, прости меня, мой нубизм. Я использую отличные вкладки jQuery для своего приложения, загружаю внешний контент во вкладки через ajax, и на одной из этих вкладок мне нужно программно перезагрузить содержимое этой вкладки после получения результата. Я следовал за документацией * безрезультатно.

Я инициализировал вкладки на моей корневой странице очень просто:

Javascript:

  $(document).ready(function(){
    $("#tabs").tabs({ cookie: { expires: 30 } });    
  });

HTML:

<div id="tabs">
<ul>
     <li><a href="#moderatorManage"><span>Find and Manage Moderators</span></a></li>
     <li><a href="flaggedCards/" id="flaggedCards" ><span>Flagged Cards</span></a></li>
     <li><a href="pendingDelete/"><span>SinBin / Pending Delete</span></a></li>
</ul>
</div>

Вы видите, что я загружаю внешний URL "flaggedCards /". Там у меня есть больше jQuery с этой функцией:

    $(document).ready(function(){
        $("#controls_{{id}} input").click(function() {

                $(this).parent().parent().parent().addClass("highlight").fadeTo("slow", 0.1);
                $("#tabs").tabs( 'load' , 0 ); // fails also tried various selectors

        });
 });

То, что я пытаюсь сделать, это вызвать вкладку flaggedCards для перезагрузки при вызове этой функции, я пробовал разные синтаксисы безрезультатно.

  • docs.jquery.com / UI / API / 1.7.1 / Вкладка # Методы нагрузки

Ответы [ 3 ]

4 голосов
/ 23 мая 2009

Мне удалось продублировать точно такую ​​же проблему, о которой вы сообщили в своем сообщении. Вот так я и решил эту проблему.

На корневой странице с вкладками добавьте эту функцию:

function selectTab(index){
 $("#tabs").tabs('load', index);
}

Затем на вашей внешней странице URL "flaggedCards /" замените строку, которая говорит:

$("#tabs").tabs( 'load' , 0 );

с этим:

selectTab(0);

Я не знаю, почему этот обходной путь помогает. Возможно, это ошибка.

0 голосов
/ 23 мая 2009

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

0 голосов
/ 23 мая 2009

Чтобы выполнить скрипт, вы должны убедиться, что тип данных запросов ajax - "html" - см. $. Параметры ajax . Для этого попробуйте параметр tabs ajaxOptions при настройке вкладок.

$("#tabs").tabs({ cookie: { expires: 30 }, ajaxOptions: {dataType: "html"} });    

Другая проблема может заключаться в том, что $(document).ready(function(){, вероятно, не запускается, когда содержимое вкладки загружается через ajax. Попробуйте удалить это и соответствующее }. Когда он загружает ваш контент через ajax, мы надеемся, что он вставит его в документ, прежде чем испортит сценарии.

У меня нет идей. Надеюсь, это поможет: -)

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