jqueryのslideToggleを使用して、メニューに簡単な展開/折りたたみを実装しようとしています。私は、触れることができない(サーバーで呼び出される)いくつかのCSSファイル、いくつかの!important宣言を持つCSSファイル、特に可視性:目に見える!重要;を含むモンスター企業のWebサイトで作業しています。および表示: ブロック !重要; . これらの宣言は、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 & 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;
}