こんにちは、いくつかのボタンがあります。最初のボタンは表示/非表示で、最初にクリックすると正しく機能します。2 つ目は次のテーブルで、次のテーブルをクリックすると、テーブル 1 が非表示になり、テーブル 2 のみが表示されます。次に、非表示ボタンをクリックすると、テーブル 1 とテーブル 2 の両方が非表示になり、非表示ボタンがクリックしました。これが私の問題とコードの例です: http://jsfiddle.net/zfnx6/27/
5 に答える
あなたが説明したように動作するようにコードを更新しました。最大の変更は、外側のテーブルを table1 と table2 のコンテナーとして定義することでした。そうすれば、上部のボタン (表示/非表示) をクリックすると、両方のテーブルの if ステートメントをいじる必要がなく、一度に両方のテーブルに影響します。
HTML のボタンで変更されたパラメータがいくつかあり、2 番目のボタンは両方のテーブルのトグルになりました。3 つ以上のテーブルを使用する場合、現在のアプローチはあまり効果的ではありません。
jquery ui accordianを見てください。
一度に 1 つのテーブルのみを表示する場合は、これを使用することを検討してください。
あなたのフィドルでは、jqueryを使用していません。jquery での要素の表示と非表示は非常に簡単で、コードを大幅に削減できます。
jQuery の使用に興味がある場合は、コードが大幅にクリーンアップされます。例を次に示します: http://jsfiddle.net/zfnx6/43/
私自身のバリエーション: http://jsfiddle.net/zb9Tt/
HTML にいくつか変更を加えましたが、ほとんどは JavaScript に関するものです。toggleable
以下は、ページ上のオブジェクトの無制限のグループに対して必要なことを実行する、非常に軽い jQuery です。このactive
クラスは、現在選択されている「タブ」を表示するために使用されます。
(function ($) {
$(document).ready(function () {
$("#togglebutton").bind("click", function () {
$(".active, #nextbt").toggle();
});
$("#nextbt").bind("click", function () {
var current = $(".active");
var next = $(".active + .toggleable");
if (next.length) {
current.removeClass("active").hide();
next.addClass("active").show();
}
});
});
})(jQuery);