我試圖用jQuery的slideToggle在菜單中實現一個簡單的展開/摺疊。我正在一個怪物公司網站工作,該網站有一些我們無法觸及的CSS文件(在服務器中調用),其中包含幾個!重要聲明的CSS文件,特別是可見性:visible!important;並顯示:block!important; 。 這些聲明會干擾slideToggle的機制,雖然有動畫,但它結束菜單的時刻會跳回到「展開」狀態。在這裏很清楚,在jsfiddle:http://jsfiddle.net/h2PVT/。這也是內聯代碼:無法動畫擴展崩潰由於!重要的CSS
<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;
}
的問題是:你爲什麼用'important'?該關鍵字的使用應該非常有限,對於這樣的事情我不認爲這是必要的。你通常應該檢查你的CSS,而不是使用特異性。無論如何,沒有CSS的其餘部分,很難告訴你如何最終改變它。 – 2012-04-20 10:00:15
他無法更改文件,所以我懷疑他是否製作了它們。 – 2012-04-20 10:04:58
上帝不,我沒有製作CSS。我在網站建立很久以後就到達了這個項目,並且有20個網站基於這個服務器端代碼,所以改變它就必須牽連數十個網站管理員和修復程序。:( – 2012-04-20 10:28:00