私は JQuery Mobile を使用しており、ページにたくさんのアコーディオンがあります。ボタンをクリックするだけで、すべてのアコーディオンを一度に展開/折りたたみたい。これはどのように行うことができますか?
質問する
13900 次
4 に答える
11
このようなものは機能しますか?
- http://jsfiddle.net/UUhMa/
- http://jsfiddle.net/UUhMa/3/ ( foreach なし)
JS
$('#openAll').on('click', function() {
$('.openMe').each(function() {
var coll = $(this);
coll.trigger('expand');
});
});
$('#closeAll').on('click', function() {
$('.openMe').each(function() {
var coll = $(this);
coll.trigger('collapse');
});
});
代替 JS ( foreach なし):
$('#openAll').on('click', function() {
$('.openMe').trigger('expand');
});
$('#closeAll').on('click', function() {
$('.openMe').trigger('collapse');
});
HTML
<div data-role="collapsible" class="openMe">
<h3>Hello 1</h3>
<p>I'm the collapsible content. By default I'm closed, but you can click the header to open me.</p>
</div>
<div data-role="collapsible" class="openMe">
<h3>Hello 2</h3>
<p>I'm the collapsible content. By default I'm closed, but you can click the header to open me.</p>
</div>
<div data-role="collapsible" class="openMe">
<h3>Hello 3</h3>
<p>I'm the collapsible content. By default I'm closed, but you can click the header to open me.</p>
</div>
<br />
<a href="#" data-role="button" id="openAll">Open All Collapsible</a>
<a href="#" data-role="button" id="closeAll">Close All Collapsible</a>
ドキュメント:
一度に開くことができるのは1つだけなので、これはセットでは機能しないようです:
ドキュメントを設定:
于 2012-07-03T20:07:31.067 に答える
3
何らかの理由で、上記の解決策がうまくいきません。$('.openMe').trigger('折りたたみ'); および $('.openMe').trigger('expand'); 動かない。
そのため、メソッドを少し書き直しました。
JavaScriptコードは次のようになります
$('#openAll').on('click', function() {
$(".ui-collapsible-heading").removeClass("ui-collapsible-heading-collapsed");
$(".ui-collapsible-content").removeClass("ui-collapsible-content-collapsed");
$(".ui-collapsible-heading a").addClass("ui-icon-minus").removeClass("ui-icon-plus");
});
$('#closeAll').on('click', function() {
$(".ui-collapsible-heading").addClass("ui-collapsible-heading-collapsed");
$(".ui-collapsible-content").addClass("ui-collapsible-content-collapsed");
$(".ui-collapsible-heading a").removeClass("ui-icon-minus").addClass("ui-icon-plus");
});
すなわち; jquery を使用して必要なクラスを追加および削除します。
于 2014-05-25T11:13:54.610 に答える