ASP.NET MVC - Как повторно запустить скрипт вкладок jQuery после вызова getJSON? - PullRequest
1 голос
/ 08 апреля 2011

У меня есть некоторые данные, обернутые в 3 div, каждый div представляет «вкладку» и скрипт jQuery для создания эффекта табуляции. 3 вкладки включают часы работы, контактную информацию, информацию о местоположении.

Довольно стандартно, ничего особенного. Когда страница загружается, запускается следующий скрипт, создающий эффект «tab».


    $(document).ready(function () {
        tabs({
            block: "#branch"
        });
    });

У меня есть раскрывающийся список, который вызывает вызов к действию, которое возвращает JsonResult, и следующий код для обработки изменения:


    $("#branches").change(function () {
        $("#branches option:selected").each(function () {
            $.getJSON("/Branch/JsonBranch/" + $(this)[0].value, null, function (data) {
                $("#branchinfo").html(data);
            });
        });
    });

Действие - это вариант сообщения ASP.NET MVC - объединить результат Json с ViewResult

Код действия не имеет значения. Проблема в том, что, поскольку я не перезагружаю всю страницу, скрипт «tab» больше никогда не запускается. Таким образом, после замены HTML-кода ВСЕ данные отображаются, вкладки не создаются.

Есть ли способ снова запустить скрипт вкладки после перезагрузки только одной части страницы? Я попытался добавить вызов tabs () в вызов функции .change (), но это не сработало.

Любая помощь будет принята с благодарностью! Спасибо!

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Вы должны быть в состоянии добавить его в свой обратный вызов getJSON.

$("#branches").change(function () {
     $("#branches option:selected").each(function () {
         $.getJSON("/Branch/JsonBranch/" + $(this)[0].value, null, function (data) {
             $("#branchinfo").html(data);
             tabs({ block: "#branch" });
          });
     });
 }); 
0 голосов
/ 08 апреля 2011

Обычно я назначаю класс 'tabs' своим целевым объектам.

Затем я запускаю их с помощью $ ('. Tabs'). Tabs ();

Таким образом, я могу назвать это сколько угодно, даже после динамического добавления еще.

Кстати; Я могу порекомендовать плагин Cookie для вкладок; Таким образом, выбранная вами вкладка запоминается.

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