Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.09.2011, 17:59
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

если да, то делать надо примерно так. (Это скорее образец чем конкретное решение)
/** **************************************************
* Обработчик щелчка по папке
* Current - это ссылка на элемент по которому кликнул порльзователь
*************************************************** */

function folderClick(var current) {

         
        var  temp = "",

        //получаем имя папки по которой щёлкнули.
        name = current.parent.attr("name"), 

 // работаем с current //

        // все папки вложенные в элемент по которому щёлкнули, независимо от внутренней иерархии          
        currentSubFolders = current..find(".folder"),

        // все файлы вложенные в элемент по которому щёлкнули  включая те что находятся во вложенных папках         
        currentSubFile = current.find(".file"),



 // работаем с деревьями //

        //treeS ссылается на все деревья 
        treeS = $("#treeView1, #treeView2, #treeView3"),

        // выбираем все папки из всех деревьев, c именем как у current (добавь на сервере атрибут name к папкам)
        itemFolders = treeS.find(".folder[name = " + name + "]"),         


        // выбираем все подпапки из itemFolders   (добавь на сервере атрибут name к папкам)
        ItemAllSubFolders = itemFolders.find(".folder"),

        // выбираем все файлы из itemFolders включае те что находятся во вложенных подпапках
        ItemAllSubFilse = itemFolders.find(".file"),



// здесь химичешь над найденным материалом как хочешь применяй атрибуты или классы ко всем найденным 
//обьектам сразу, или перебирай в цикле для более сложных манипуляций. 

        // к примеру найти все папки, соответствующие именам папок, вложенных в current, можно так

         currentSubFolders.each( function(){
                 temp+= ".folder[name="+this.attr["name"]+"],";// формируем запрос в котором перечисляем все нужныеимена
         })
         
         // в SubFoldersBaseForCurrent помещаем ссылку на все папки в трёх tree, имена которых совпали с именами одной 
         // из имён вложенных в curent папок. 

         subFoldersBaseForCurrentFolders=treeS.find(temp);
};
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 05.09.2011 в 18:31.
Ответить с цитированием
  #12 (permalink)  
Старый 05.09.2011, 18:06
Интересующийся
Отправить личное сообщение для Juli@ Посмотреть профиль Найти все сообщения от Juli@
 
Регистрация: 01.09.2011
Сообщений: 11

Спасибо большое, DjDiablo!
Сделала,как поняла.Работает!)
$(document).ready(function(){
	$('#content a').click(function(){//при  клике на эл-т a из дива content	
	$(this).addClass('current');//присваиваем ему класс 
	$('a').not(this).removeClass('current'); //при след. клике удаляем класс

	var curName = $(this).attr("name");
	var t="a[name="+curName+"]";
  	var current = $('ul.filetree').find(t).addClass('current').show();//все элементы с таким же именем заносим в current
	current.parent().addClass("selected").end().addClass("selected").parents("ul, li").add( current.next() ).show();//открываем всех родителей эл-тов current
	$('a').not(t).removeClass('current');
//это для списка ol li
	var current1 = $('ol.filetree').find(t).addClass('current');				
	current1.parent().addClass("selected").end().addClass("selected").parents("ol, li").add( current1.next() ).show();
	$('a').not(t).removeClass('current');
	
	//смотрим детей у элементов current
	var childs = current.parent().parent().find("a").not(current);
	childs.addClass('current').parent().addClass("selected").end().addClass("selected").parents("ul, li").show();
	//а вот это для поиска элементов с такими же name как у childs 
	length = childs.length;
	for( i=0; i < length; i++){
	s ="a[name="+childs[i].name+"]";
	$('ol.filetree').find(s).addClass('current');
	$('ul.filetree').find(s).addClass('current').parent().addClass("selected").end().addClass("selected").parents("ul, li").show();

	}
							 
	});
	});
Ответить с цитированием
  #13 (permalink)  
Старый 06.09.2011, 11:32
Интересующийся
Отправить личное сообщение для Juli@ Посмотреть профиль Найти все сообщения от Juli@
 
Регистрация: 01.09.2011
Сообщений: 11

DjDiablo,спасибо, что не остаетесь равнодушным!

Последний раз редактировалось Juli@, 06.09.2011 в 11:34.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в общем меню для всех страниц поменять класс определенного пункта в зависимости о phenom Элементы интерфейса 2 08.04.2011 11:09
Jquery немогу установить класс! shureg Общие вопросы Javascript 4 26.10.2010 14:37
setInterval добавлять класс по таймеру igsavenko jQuery 2 06.07.2010 13:00
Присвоение класса элементу с заранее неизвестным ID why.not? Events/DOM/Window 3 01.03.2010 04:47
обратиться к элементу формы, заданному переменной Andrej_2 Элементы интерфейса 4 15.05.2009 09:18