有没有办法从标题点击中禁用部分扩展,而是将功能分配给标题中包含的链接?我们的想法是在标题左侧有一个按钮展开并折叠标题。我希望这会允许我在标题中包含其他元素,这些元素可以在不扩展/折叠的情况下进行点击。谢谢!
答案 0 :(得分:8)
Here是一种方法。基本上,我正在用disable
选项和首先启用手风琴的click
事件初始化手风琴,然后做手风琴的事情,最后禁用手风琴。
HTML:
<div class="demo">
<div id="accordion">
<h3>
<a href="#">Section 1</a>
<a href="#" data-index="0" class="trigger">Expand this</a>
</h3>
<div>
<p>
Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo
ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
</p>
</div>
<h3>
<a href="#">Section 2</a>
<a href="#" data-index="1" class="trigger">Expand this</a>
</h3>
<div>
<p>
Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit
faucibus urna.
</p>
</div>
<h3>
<a href="#">Section 3</a>
<a href="#" data-index="2" class="trigger">Expand this</a>
</h3>
<div>
<p>
Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia
ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
</p>
<ul>
<li>
List item one
</li>
<li>
List item two
</li>
<li>
List item three
</li>
</ul>
</div>
<h3>
<a href="#">Section 4</a>
<a href="#" data-index="3" class="trigger">Expand this</a>
</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>
</div>
使用Javascript:
$(function() {
$("#accordion").accordion({ disabled: true });
$(".trigger").click(function() {
$("#accordion").accordion("enable").accordion("activate", parseInt($(this).data("index"), 10)).accordion("disable");
});
});
答案 1 :(得分:3)
您可以简单地specify your header element:
$( ".selector" ).accordion({ header: 'h3' });
答案 2 :(得分:1)
更好的方法是取消绑定点击处理程序:
$(function () {
$("#accordionId").accordion({
collapsible: true,
active: false,
animate: 0,
icons: false
});
$(".ui-accordion-header").unbind('click').click(function() {
alert('dsds');
});
});
答案 3 :(得分:0)
如上所述。
如果你只使用一个手风琴或具有相同的功能/接口,我通常会编辑实际的java脚本文件
例如。 jquery.accordion
我会编辑文件底部附近的默认设置,从'header:'到''到类似'标题:'acc-heading“'
答案 4 :(得分:0)
IMO,最优雅的方法是在初始化手风琴时将事件设置为 none :
$("#accordion").accordion({
event: "none"
});
然后可以从代码触发该部分:
$("#accordion").accordion("option", "active", 0);
请注意,如果您使用较旧的jq-ui版本,则可能需要使用较旧的方法- activate (而不是“ option”,“ active” )