所有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 切换 - 在多个div 上展开/折叠是否有帮助?
另外,这里有一些注意事项:
1).find()函数非常昂贵,你应该避免多次调用它。2)看起来你的代码非常依赖于DOM节点的顺序(有很多.parent().parent()调用)。 如果你曾经改变过任何 DOM 节点的子节点的父节点,你必须在很多地方改变这个函数。3)祝你好运:)