Привет всем javascript-профи! Я ищу решение для расширения многоуровневых div, которое содержит ссылки на файлы doc/pdf с возможностью копирования/прошлых или совместного использования ссылок URL в расширенном состоянии. Я полный новичок с javascript и не уверен, каким образом это можно реализовать. Может быть что-то вроде " location.hash " и " on hashchange ". Вот код, который я использую для расширения/свертывания многоуровневых div на моем сайте:
$(document).ready(function(){
$('.lib_element_sign_pos').toggle(function() {
$(this).css("background-image", "url('/images/-.png')");
if($(this).parent().parent().attr('class') == "lib_level_1")
$(this).parent().parent().find('.lib_level_2').slideDown('slow');
else if($(this).parent().parent().attr('class') == "lib_level_2")
$(this).parent().parent().find('.lib_level_3').slideDown('slow');
} , function() {
$(this).css("background-image", "url('/images/+.png')");
if($(this).parent().parent().attr('class') == "lib_level_1")
$(this).parent().parent().find('.lib_level_2').hide();
else if($(this).parent().parent().attr('class') == "lib_level_2")
$(this).parent().parent().find('.lib_level_3').hide();
});
$('.lib_element_text').toggle(function() {
$(this).parent().find('.lib_element_sign_pos').css("background-image", "url('/images/-.png')");
if($(this).parent().parent().attr('class') == "lib_level_1")
$(this).parent().parent().find('.lib_level_2').slideDown('slow');
else if($(this).parent().parent().attr('class') == "lib_level_2")
$(this).parent().parent().find('.lib_level_3').slideDown('slow');
} , function() {
$(this).parent().find('.lib_element_sign_pos').css("background-image", "url('/images/+.png')");
if($(this).parent().parent().attr('class') == "lib_level_1")
$(this).parent().parent().find('.lib_level_2').hide();
else if($(this).parent().parent().attr('class') == "lib_level_2")
$(this).parent().parent().find('.lib_level_3').hide();
});
$('.lib_element_about').click(function() {
if($(this).next().css('display') == 'none')
$(this).next().slideDown('100000');
else
$(this).next().hide();
$('#lib_area').find('.lib_element_info').hide();
} , function() {
});
});
Будем рады любой помощи. Заранее спасибо!
Помогает ли Jquery - развернуть/свернуть на нескольких divs?
Кроме того, здесь приведены некоторые примечания:
1) функция.find() очень дорога, и вам следует избегать ее вызова столько раз. 2) Кажется, что ваш код очень зависит от упорядочения узлов DOM (существует много вызовов.parent(). Parent()). Если вы когда-либо меняете родителей детей из любых узлов DOM, вам придется изменить эту функцию во многих местах. 3) Удачи :)