1

我的 jQuery Accordion 具有以下结构:

<ul id='accordion'>
    <li class='header'>
        <a href='#'>Click me</a>
    </li>
    <li class='content'>
        <div>blah blah</div>
    </li>
    <li class='header'>
        <a href='#'>Click me too</a>
    </li>
    <li class='content'>
        <div>blah blah</div>
    </li>
    <li class='header'>
        <a href='#'>Click me as well</a>
    </li>
    <li class='content'>
        <div>blah blah</div>
    </li>
</ul>

我想在标题 li 中放一些其他链接,但问题是,整个 li 都是可点击的,并激活了它下面的 li。我只希望标题 li 中的链接文本是可点击的。我已将标题设置为 li.header,将其更改为 li.header a 无济于事。我还尝试在 init 上禁用手风琴,然后在单击通过索引“激活”内容 li 的链接时绑定一个函数。

jQuery('#accordion').accordion({
    header: 'li.header',
    collapsible: true,
    active: false,
    autoHeight: false
});

jQuery('li.header a').live('click', function(){
    var i = jQuery(this).parent().next().index();
    jQuery('#accordion').accordion('activate', i);
});

我希望我的问题很清楚!或者建议我是否应该编写自己的手风琴。

谢谢!

4

2 回答 2

1

如果没有 UI,它会像这样工作:

演示 jsFiddle

jQuery(无用户界面)

$('#accordion li.content').hide();


$('li.header > a').on('click',function(){
    var nxt = $(this).parent('li').next('li.content');
    
    nxt.is(':hidden') ? ($('#accordion > li.content').slideUp() , nxt.slideDown()) : nxt.slideUp() ;
    
});
于 2012-04-06T05:20:04.413 回答
0

我将禁用除手风琴切换链接之外的其他链接上的事件传播

检查演示 示例

于 2012-04-06T05:38:03.930 回答