JQuery устанавливает правильную вкладку активной при закрытии новой открытой вкладки

0

У меня есть две вкладки, из которых вы можете открыть новую третью вкладку и установить ее активную. При закрытии новой открытой вкладки, нажав на значок x, вкладка должна быть активной, с которой была открыта новая вкладка. Как я могу настроить правильную вкладку?

Если пользователь открывает новую вкладку из Tab1, а затем закрывает новую вкладку (№3), тогда активная вкладка должна снова быть tab1. Если пользователь открывает новую вкладку на вкладке2, тогда активная вкладка должна быть tab2, когда он закрывает новую открытую вкладку.

Здесь мой код, чтобы закрыть вкладку:

// close icon: removing the tab on click
tabs.delegate("span.ui-icon-close", "click", function () {
    var panelId = $(this).closest("li").remove().attr("aria-controls");
    $("#" + panelId).remove();
});

См. Мой пример JSFiddle: http://jsfiddle.net/metaxos/JvaRW/2/

Любая помощь оценивается.

Теги:
tabs

1 ответ

0

Вам нужно каким-то образом определить, на какой вкладке появилась новая вкладка. Вы можете поместить свойство на вкладке 3, чтобы указать, какая вкладка была использована для его открытия.

addTab('tab-3', this.id); // this.id would be the id of the triggering tab

function addTab(newTabId, triggerId) {
     li = '<li><a href="#tabs-3">NEW TAB</a><span openerId='" + triggerId + "' class="ui-icon ui-icon-close" role="presentation">close</span></li>'
}

Изнутри функции удаления возьмите идентификатор и используйте его, чтобы щелкнуть вкладку:

var theTab = $("#tab-3").attr('openerID');

$("#" + theTab).click();
  • 0
    Спасибо. Может получить openerId из диапазона, но $ ("# tabs-3"). Prop ('openerId') возвращает "undefined". Также при установке названия одинаково на обоих. Я обновил JSFiddle: [ссылка] jsfiddle.net/metaxos/JvaRW/6
  • 0
    Виноват. .prop ничего не вернет, так как значение является атрибутом элемента, который вы создаете. Попробуйте использовать .attr (решение обновлено). Обратите внимание, что идентификатор, который вы получите, будет идентификатором ссылки, а не идентификатором вкладки. Возможно, вам придется выполнить некоторый анализ идентификатора, чтобы найти вкладку, которую вы. Вам также нужно будет поместить идентификаторы на вкладки (элементы li), чтобы иметь возможность выбирать их с помощью селектора идентификаторов.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню