如何使用 javascript 扩展多级 div 并将扩展条件保存在 url 中以进行链接共享或手动复制/粘贴



所有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)祝你好运:)

最新更新