jquery - 由于 CSS 中的 important,无法为展开折叠设置动画

标签 jquery css slidetoggle

我正在尝试使用 jquery 的 slideToggle 在菜单中实现简单的展开/折叠。我在一个怪物公司网站上工作,该网站有一些我们无法触摸的 CSS 文件(在服务器中调用),CSS 文件有几个!重要声明,特别是可见性:可见!重要;并显示:阻止!重要; . 这些声明干扰了 slideToggle 的机制,尽管有动画,但它结束菜单的那一刻会跳回“展开”状态。在 jsfiddle 中很清楚:http://jsfiddle.net/h2PVT/ .这也是内联代码:

<div class="AspNet-Menu-Vertical" id="zz1_CurrentNav">
        <ul class="AspNet-Menu">
            <li class="AspNet-Menu-Leaf">
                <a href="/dg/ias/whoweare/Pages/whoweare.aspx" class="AspNet-Menu-Link">
                    Who we are</a>
            </li>
            <li class="AspNet-Menu-WithChildren  AspNet-Menu-Selected">
                <a href="/dg/ias/whatwedo/Pages/Whatwedo.aspx" class="AspNet-Menu-Link  AspNet-Menu-Selected">
                    What we do</a>
                <ul>
                    <li class="AspNet-Menu-Leaf">
                        <a href="/dg/ias/whatwedo/Pages/Agencies.aspx" class="AspNet-Menu-Link" title="Agencies">
                            Audit in Agencies</a>
                    </li>
                    <li class="AspNet-Menu-Leaf">
                        <a href="/dg/ias/whatwedo/Pages/Commission.aspx" class="AspNet-Menu-Link" title="Audit in the Commission">
                            Audit in the Commission</a>
                    </li>
                    <li class="AspNet-Menu-Leaf">
                        <a href="/dg/ias/whatwedo/reports/Pages/Home.aspx" class="AspNet-Menu-Link" title="IAS reports">
                            Our Reports</a>
                    </li>
                    <li class="AspNet-Menu-Leaf">
                        <a href="/dg/ias/whatwedo/Pages/Listofportfolios.aspx" class="AspNet-Menu-Link" title="List of portfolios">
                            List of portfolios</a>
                    </li>
                    <li class="AspNet-Menu-Leaf">
                        <a href="/dg/ias/whatwedo/Pages/ITAudit.aspx" class="AspNet-Menu-Link" title="IT Audit">
                            IT Audit</a>
                    </li>
                    <li class="AspNet-Menu-Leaf">
                        <a href="/dg/ias/whatwedo/Pages/GRC.aspx" class="AspNet-Menu-Link" title="Description of the audit tool GRC">
                            Our Audit Tool: GRC</a>
                    </li>
                </ul>
            </li>
            <li class="AspNet-Menu-Leaf">
                <a href="/dg/ias/knowledgesharing/Pages/Home.aspx" class="AspNet-Menu-Link">
                    Knowledge Sharing</a>
            </li>
            <li class="AspNet-Menu-Leaf">
                <a href="/dg/ias/tools/Pages/Home.aspx" class="AspNet-Menu-Link" title="Tools and procedures">
                    Tools &amp; Procedures</a>
            </li>
        </ul>

</div>

我使用的JS:

$('.AspNet-Menu-WithChildren a').click(function(e) { e.preventDefault();
    $('.AspNet-Menu-WithChildren ul').slideToggle('slow', function() {
    });
});

干扰的 CSS(我认为还有更多,但..我想这就足够了)

ul.AspNet-Menu ul {
visibility: visible !important;
}

ul.AspNet-Menu ul {
display: block !important;
}

最佳答案

我打赌您可以包含一些您自己的 CSS。找到一种方法来做到这一点并制作样式:

html body .importantHide { display:none!important;}

像这样制作javascript:

$('.AspNet-Menu-WithChildren a').click(function(e) { 
    e.preventDefault();
    $('.AspNet-Menu-WithChildren ul').slideToggle('slow', function() {
        $(this).toggleClass('importantHide');
    });
});​

这将添加一个类以使其保持隐藏状态。您可能需要更改一些内容以使其看起来不错。你可以自己做。如果没有,请问!

这是 jsfiddle:http://jsfiddle.net/Allan/h2PVT/2/

关于jquery - 由于 CSS 中的 important,无法为展开折叠设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10244001/

相关文章:

javascript - 如何在javascript AJAX中从php获取两个id值

css - bootstrap h1 和正常文本对齐

javascript - HTML、JS 和 CSS 桌面应用程序

javascript - slideToggle 不会下推下面的 div

javascript - jquery滑动切换: hidden + new link

Javascript 在另一页上工作时不能在一个页面上工作

javascript - 强制循环等待两个函数依次运行

javascript - 将一个大的 javascript 文件分割成几个较小的文件

html - 如何使登录表单居中

javascript - 单击搜索表单时保持子项切换 - jquery