javascript - 不影响嵌套 Accordion jquery 的自定义样式 - 如何修复

标签 javascript jquery css jquery-ui jquery-ui-accordion

我正在尝试创建自定义样式的 Accordion 。到目前为止,它的工作原理正是我需要它为最外层/父级 Accordion 工作的方式。但是,当涉及到嵌套 Accordion 时,这些样式会被 jquery-ui 的样式覆盖。

LINK TO THE FIDDLE

代码

CSS:

*
{
    padding:0px;
    margin:0px;
}

#accordion
{
    width:60%;
    margin-left: 20%;
    margin-top: 20px;
}
.subAccordion
{
    width:100%;
    margin-left: 0%;
    margin-top: 10px;
}

.ui-accordion-header
{
    background: url('');
    background-color: #3f414b;
    border-radius: 3px;
    border:0px;
    color:#afb0b3;
    font-size: 16px;
    font-weight: 300;
    padding:1em;
    margin-bottom: 10px;
}

.ui-accordion-content-active
{
    background: url('');
    background-color: #3f414b;
    border-top-right-radius: 0px;
    border-top-left-radius: 0px;
    border:0px;
    color:#afb0b3;
    font-size: 14px;
    font-weight: 300;
    line-height: 22px;
    margin-bottom: 10px;
    margin-top: -10px
}

.ui-accordion-header-active
{
    border-bottom-right-radius: 0px;
    border-bottom-left-radius: 0px;
    color:#afb0b3;
    font-size: 16px;
    font-weight: 300;
    border-bottom: 1px dashed #595b66;
    margin-bottom: 10px;
}

.ui-accordion .ui-accordion-icons 
{
    padding: 1em;
}
.ui-accordion .ui-accordion-content
{
    padding: 1em;
}
.subAccordion
{
    display: block;
    height: auto;
    width: 90%;
    padding: 5% !important;
}
#accordion div ul li
{
    list-style-type: none;
    line-height: 27px;
    cursor:pointer;
}
.subAccordion div ul li
{
    list-style-type: none;
    line-height: 27px;
    cursor:pointer;
}

HTML

<div id="accordion">
  <h3>Talent Supply</h3>
  <div>
    <ul>
        <li>PPP</li>
        <li>PPP Instant</li>
        <li>Patent</li>
        <li>GitHub</li>
        <li>BLSI</li>
    </ul>
  </div>
    <h3>Talent Demand</h3>
    <div class="subAccordion">
        <h3>Job Boards</h3>
        <div></div>
        <h3>Company Career Sites</h3>
        <div>
            <ul>
                <li>Microsoft</li>
                <li>PPP Instant</li>
                <li>Patent</li>
                <li>GitHub</li>
                <li>BLSI</li>
            </ul>
        </div>
    </div>
    <h3>Talent Trends</h3>
    <div>
    <ul>
        <li>News 1</li>
        <li>News 2</li>
    </ul>
    </div>
    <h3>Section 4</h3>
    <div>
        <p>
            Cras dictum. Pellentesque habitant morbi tristique senectus et netus
            et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
            faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
            mauris vel est.
        </p>
        <p>
            Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
            Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
            inceptos himenaeos.
        </p>
    </div>
</div>

JS

$(function() {
    $( ".subAccordion" ).accordion({active: false, collapsible: true});
    $( "#accordion" ).accordion();

  });
$(document).ready(function(event){
    _bindEvents();
})

function _bindEvents()
{
    $( ".subAccordion" ).on( "accordionbeforeactivate", function( event, ui ) {
        if($.trim($( ui.newPanel ).html()).length == 0)
        {
             event.preventDefault();
        }

   });

    $( "#accordion" ).on( "accordionactivate", function( event, ui ) {
        $('.ui-accordion-content').css({'height':'auto'});
    });

}

最佳答案

您只是没有为您的 subAccordion 类指定元素样式。试试看(例如):

.ui-accordion-header, .subAccordion .ui-accordion-header {
  #styles
}

这是带有您的代码的 jsfiddle 示例:http://jsfiddle.net/25dZR/1/

关于javascript - 不影响嵌套 Accordion jquery 的自定义样式 - 如何修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22374210/

相关文章:

html - 使用视差效果时如何使文本和按钮固定在背景上

html - 使用 native 句柄将 CSS 应用于 Angular 指令(自定义或非自定义)

Javascript将函数返回的数组分配给另一个包含所有元素的数组

javascript - 指向按钮以添加一个类

函数和 .hover 中的 JavaScript 全局变量

javascript - 0 用 d3 系列数据填充空值

javascript - 检查动态生成的输入 ID

javascript - 图像高度始终返回为 0

java - 带有 Java 后端的 angularjs

javascript - 如何清除.map回调函数中放置的间隔