Say У меня есть следующие вкладки Dijit в закладке контейнера:Dijit: Закрытие несколькими вкладками
tab_1
tab_dave
tab_2
tab_3
...
tab_n
Как я мог закрыть все вкладки кроме tab_dave
?
Say У меня есть следующие вкладки Dijit в закладке контейнера:Dijit: Закрытие несколькими вкладками
tab_1
tab_dave
tab_2
tab_3
...
tab_n
Как я мог закрыть все вкладки кроме tab_dave
?
Один из способов сделать это - это перебрать все дочерние элементы, удалив их без этого конкретного имени или идентификатора.
function closeAllBut(containerId, tabId)
{
var tc = dijit.byId(containerId),
tabs = tc.getChildren();
for(var i = 0; i < tabs.length; i++)
{
if(tabs[i].id != tabId) tc.removeChild(tabs[i]);
}
}
Кажется довольно медленно, хотя, было бы неплохо, если бы там был чище путь (так что не принимает мой ответ! :))
для запроса с проверкой додзё dojo.query http://dojotoolkit.org/reference-guide/1.10/dojo/query.html
Запрос на типе элемента или имя класса или любой другой, обеспечивают второй параметр для
dojo.forEach(dojo.query(".tabs", "containerId"),
function(closeTab) {
//doStuff
}
);
Но, если есть много вкладок, вы можете уничтожить (рекурсивный) весь tabContainer и построить новый с одним элементом.