2013-09-10 4 views
3

У меня есть несколько панелей название:dijit.TitlePane: Развернуть/Свернуть все

<div class="classname" data-dojo-props="title: 'Title Here', open: false" data-dojo-type="dijit.TitlePane">..</div> 

Прямо сейчас я написал этот

<a onclick="dojo.forEach(dijit.registry.toArray(), function(item){ if (item.get('declaredClass')=='dijit.TitlePane'){item.set('open',true)};});">Expand All </a> 
<a onclick="dojo.forEach(dijit.registry.toArray(), function(item){ if (item.get('declaredClass')=='dijit.TitlePane'){item.set('open',false)};});">Collapse All</a> 

это успешно открывает и закрывает все названия панелей, но есть другую область заголовка, используемую на странице, на которую я не хочу повлиять. Я попытался использовать dojo.query ('. Classname'). Attr ('open', false); но это не сработало.

У меня нет опыта с dojo/dijits, как я могу установить значение true или false на основе атрибута класса? Любая помощь будет принята с благодарностью.

ответ

2

Вам нужен виджет, чтобы сделать это не dom-объект, , и именно этот запрос дает вам объект dom.

dojo.query('.classname').forEach(function(node){ 
    dijit.getEnclosingWidget(node).set('open',false); 

}) 
+0

Спасибо, сработало! Также FYI для кого-то еще, потому что я не знал. Для того чтобы запрос класса работал, мне пришлось написать 'data-dojo-props =" class: 'classname' "' – smli

Смежные вопросы