0

私は使っている

$(".archived").click(function(){
    $(".archivedtable").toggle();
});

どのナビゲーション リンクが選択されたかに基づいて開かれるテーブルがたくさんあるので、1 を選択すると 1 が開きます。2 を選択すると、2 も開きますが、1 はまだ開いています。それで、1がなくなり、2が新しいアクティブになるようにする方法を考えていました。これは理にかなっていますか?

アップデート:

if ($paid == 1 && $securitylevel == 1 && $csvuser != 1){

    $sql = "SELECT firstname, lastname, email, phone, username, password, status, statuschangedate FROM csvdata WHERE memberview =:username ORDER BY lastname";
    $sth= $DBH->prepare($sql);
    $sth->execute(array(':username' => $username));
    $i=0;
    echo "<table class='nonothertable'> 
    <tr class='firsttr' style='background:gray;'>
    <td>First Name </td>
    <td>Last Name </td>
    <td>Email </td>
    <td>Phone </td>
    <td>Username </td>
    <td>Password </td>
    <td>Status </td>
 <td>Status Change Date</td>
    <td>#</td>
     </tr>
    ........

     echo "
      </table>";
}
 <script>
$(".nonother").click(function(){
    $(".nonothertable").toggle();
});
</script>

これらのテーブルは PHP によって入力されます。私はそれらのテーブルを大量に持っており、それぞれの後に、上記のように特定のテーブルを開閉するスクリプトがあります。一度クリックすると、別のものが開いていて、一度閉じる方法を知りたいです。

それらはすべて div にあり、一部は別の div にネストされています。すべて同じ親を持つ。

ノート:

移入されたすべての単一のテーブルには、それにアクセスするための異なる名前と異なる属性があることに注意してください。

4

4 に答える 4

0
var $tables = $("table");
var $butons = $(".tableSelector");

$butons.click(function(){
    var $t = $(this);
    var $currentTable = $("."+$t.attr("class")+"table").show();
    $tables.not($currentTable).hide();
});
于 2013-02-11T22:42:34.150 に答える
0

わかりました、あなたの特定のコードについて

追加するだけ

$("table").not(".current-one").hide();

あなたの .toggle(); の前に

于 2013-02-11T23:29:31.520 に答える
0

オープン & テーブル生成へのリンクを制御すると、コード内で多くの JS 呼び出しが必要になると思います。テーブルに共通のクラスと別の名前を付けて、テーブル名に従ってリンクを作成するだけです。

サンプルにはボタン (クリック可能な要素) 生成コードが表示されないため、次のようなことができます。

mytableX が一意の名前であるループ内 (X をデータベース ID または一意の番号に置き換えます。

echo "<a href='#' class='togglers'>Open table X</a>";
echo "<table class='nonothertable' id='mytableX'>"
....
echo "</table>";

テーブルは、CSS を使用してデフォルトで非表示にする必要があります

.nonothertable { display:none; }

次に、これを1回呼び出すだけで:

<script type="text/javascript">
$(document).ready(function() {
    $(".togglers").click(function(){
        $(".nonothertable").hide(); // Hide all tables
        $(this).next('.nonothertable').show(); // Show the table next to the link we just clicked
        return false; // Avoid page jumps
    });    
});
</script>

クリックするたびに、すべてのテーブルが非表示になり、リンクの横にテーブルが表示され、ページ ジャンプが回避されます。無制限の数のテーブルに対する 1 つの JS 呼び出しのみ。

動作デモ: http://jsfiddle.net/SHcjQ/

于 2013-02-11T22:46:14.257 に答える
-1

数字が選択されると、すべてのテーブルを閉じるループを実行してから、選択したテーブルを開きます。

于 2013-02-11T22:37:54.637 に答える