Вкладки ASP.Net + JQuery: использование параметра cookie разрушает мой графический интерфейс - PullRequest
0 голосов
/ 16 февраля 2011

У меня есть графический интерфейс пользователя на веб-странице с вкладками:

  • JQuery 1.4.2
  • JQuery-UI 1.8.9 (полная загрузка)

Идентификаторы для div'ов «панели» - это GUID объектов домена в базе данных.Все работает как надо.

Но когда я включаю опцию cookie в вызов функции на

$(document).ready(function () {
    //$("#tabs").tabs(); //Without tabs works fine

    $("#tabs").tabs({    //This call with cookie option breaks everything.
        cookie: {
            expires: 1
        }
    });
});

Под 'breaks' я подразумеваю - содержимое моей последней вкладки (котораявключает в себя кнопку «Отправить») в конечном итоге отображается в нижней части каждой страницы с вкладками, хотя сама вкладка выглядит хорошо.Ни одна из вкладок не открывает соответствующую панель при нажатии, но я могу видеть правильный идентификатор вкладки в адресной строке браузера, когда нажимаю вкладку.

Я сравнил источник обеих страниц (с ибез опции cookie) и они идентичны , кроме вызова функции JQuery tab.

Но консоль Javascript сообщает об ошибке:

cannot call method 'apply' of undefined

Есть ли что-то еще, что мне нужно сделать, чтобы это заработало?Документация предлагает не ...

Я включил плагин cookie, как предложено Nalum, но это не решило проблему.

Детализация в jquery-ui-1.8.9.custom.min.js дает мненеприятный бит кода:

return d.cookie.apply(null,[b].concat(d.makeArray(arguments ...

Этот код, по-видимому, ожидает, что [b] будет выглядеть примерно так: ui-tabs-1, то есть способ идентифицировать вкладки, если вы добавляете вкладки через tabs.add(...)функция.И, конечно, я не добавляю свои вкладки таким образом - все мои вкладки имеют идентификаторы GUID, которые относятся к элементам, которые поступают из БД и выводятся с помощью элемента управления Repeater.

Некоторые HTML ниже для справки:

<div id="tabs">
    <ul>            
        <li>
            <a href='#TabDiv471de30d-aaec-4485-8a50-1b2fdbc58053'>
                Tab A
            </a>
        </li>
        <li>
            <a href='#TabDiv951e2fee-9272-4a8c-becb-3f3a07770347'>
                Tab B
            </a>
        </li>
    </ul>
    <div id='TabDiv471de30d-aaec-4485-8a50-1b2fdbc58053'>
        This is Pane A
    </div>
    <div id='TabDiv951e2fee-9272-4a8c-becb-3f3a07770347'>
        This is Pane B
    </div>
</div>

1 Ответ

1 голос
/ 16 февраля 2011

Из документов jQuery UI , обратите внимание: Требуется плагин cookie.

Сохранение последней выбранной вкладки в файле cookieЗатем файл cookie используется для определения первоначально выбранной вкладки, если выбранный параметр не определен. Требуется плагин cookie. Объект должен иметь пары ключ / значение в той форме, которую плагин cookie ожидает в качестве параметров.Доступные параметры (пример): {expires: 7, путь: '/', домен: 'jquery.com', secure: true}.Начиная с jQuery UI 1.7, также можно определить имя файла cookie, которое используется через свойство name.

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