Пустые вкладки пользовательского интерфейса jQuery - PullRequest
1 голос
/ 06 апреля 2009

Как очистить (удалить все вкладки) вкладки пользовательского интерфейса jQuery?

РЕДАКТИРОВАТЬ: я не пытаюсь удалить функциональность вкладки, но очистить все вкладки, чтобы добавить новые. Я пытаюсь с:

for (var i = $('#content').tabs('length') - 1; i >= 0; i--) {
    $('#content').tabs('remove', i);
}

Но вкладки ('длина') всегда возвращают 0, даже если к элементу управления добавлено несколько вкладок.

Кстати, я инициализирую его пустым

$('#content').tabs();

и динамическое добавление вкладок впоследствии

$('#content').tabs( 'add' , '' , data[i].nombre);

Ответы [ 4 ]

6 голосов
/ 15 октября 2011

У меня были проблемы с итерацией по вкладкам и удалением их всех, как вы делаете в своем вопросе. Мое решение состояло в том, чтобы удалить 0-ую вкладку несколько раз, равную значению, возвращаемому методом "length" объекта tabs:

var tab_count = $('#tabs').tabs('length');
for (i=0; i<tab_count; i++){
    $('#tabs').tabs( "remove" , 0 )
}
4 голосов
/ 17 апреля 2013

У меня была похожая проблема. Чтобы удалить вкладки из предыдущего запроса перед загрузкой новых вкладок, я предпринял следующие шаги:

  1. убрал вкладки (#tabs ul li),
  2. удалено содержимое вкладки (#tabs div) и
  3. обновил вкладки.

Вот код, который я использовал. Работает для меня. Надеюсь, что это работает для вас.

$('div#tabs ul li').remove();
$('div#tabs div').remove();
$("div#tabs").tabs("refresh");

Другие решения, которые я нашел в сети, у меня не работали.

3 голосов
/ 06 апреля 2009

Вы можете просто отсоединить вкладки от селектора.

$('#content').unbind();

EDIT:

Прямо из документации jQuery

.tabs( 'destroy' );

Полностью удалите функциональность вкладок. Это вернет элемент обратно в его состояние перед инициализацией.

2 голосов
/ 06 апреля 2009

Вы пробовали добавлять вкладки с непустым URL?

$('#content').tabs( 'add' , 'non empty url' , data[i].nombre);

Скопировано из официальной документации (http://docs.jquery.com/UI/Tabs#method-add)

.tabs( 'add' , url , label , [index] )

Добавить новую вкладку. Второй аргумент - это либо URL-адрес, состоящий из идентификатора фрагмента только для создания вкладки на странице, либо полный URL-адрес (относительный или абсолютный, без поддержки междоменной области), чтобы превратить новую вкладку в вкладку Ajax (удаленную). Третий - это позиция, начинающаяся с нуля, куда нужно вставить новую вкладку. Необязательно, по умолчанию новая вкладка добавляется в конце.

...