0

リンクをクリックするたびに、現在の行の後にテーブル行が追加され、成功します

$("#row"+id+"").after("<tr class='more-info' id='open"+id+"'><td colspan='13' class='mbg'>"+ html +"</td></tr>");

リンクをクリックするたびに、まったく同じ情報を持つ別の行が追加されます。2回目にクリックしたときに実行したいのは、行を非表示にすることです。

.slideToggle()(下記)を追加すると機能すると思いましたが、機能しません。

$("#row"+id+"").after("<tr class='more-info' id='open"+id+"'><td colspan='13' class='mbg'>"+ html +"</td></tr>").slideToggle();

どんな助けでも大歓迎です

4

2 に答える 2

1

作成された要素を選択していないため、連鎖は何もしません。tr次の要素を選択して非表示にすることができます。おそらく、別の行も作成したくないと思います。

.click(function(){
    if ($("#row" + id ).next('#open'+id).length > 0) {   // <-- check if there is a next row
        $("#row" + id ).next('#open'+id).slideToggle(); // <-- if there is just toggle next row
    } else {
        $("#row" + id + "").after("<tr class='more-info' id='open" + id + "'><td colspan='13' class='mbg'>testing</td></tr>");
        // else add new row
    }
});

編集:

  1. 数字としてのIDは有効なHTMLではありません。
  2. IDは一意である必要があります

上記のコードを変更して、次のIDも開いているかどうかを確認しましたが、このフィドルでは正常に機能します。HTMLコードは変更していませんが、IDを修正することをお勧めします。

http://jsfiddle.net/5Zpej/

于 2012-07-31T19:10:42.410 に答える
-1

オブジェクトを「slideToggle」にする方法の例を次に示します-クリックすると可能になります:

$("#idToHide").click(function(){
   $(this).slideToggle();
});

説明:最初に、クリックハンドラーをアタッチする必要があります。このjQueryのクリック機能を実行できます。クリックハンドラーは、でクリックされた要素にアクセスできますthis。要素を非表示にするには、jQueryで要素を選択します---$(this)次にslideToggle()それを選択します。

例:フィドル

于 2012-07-31T19:15:58.360 に答える