jQueryがdivの内容を無視するのはなぜですか?

私はチェクボックスに接続されたdivの簡単なトグルを持っています。

$('#step2').hide();

$('#toggle-check').click(function(){

$('#step2').fadeToggle();

})

なぜ、隠れないのだろうか? #step2の内容を選択しますか?これは現在、テーブルデータのリストであり、それを隠すわけではありません。早く私のdivを終了し、それは動作します。

<tr>
<th></th>
<td></td>
</tr> 

現在、#step2 divをすべてのテーブルデータの上に追加しています。そのため、CSSスタイルの問題があると思いますか?

0
#step2 はどこにありますか?あなたはコードの関連部分を投稿できますか?
追加された 著者 James Allardice,
div 内に与えられたマークアップの周りに table 要素がありますか?そうでない場合、それは有効ではありません。
追加された 著者 James Allardice,
jQueryについてではなく、HTMLに関するものです。 HTMLが無効であれば、ブラウザが何を修正して修正するか分からず、jQueryはすべてのマークアップが変更されたために何をすべきかを知りません。
追加された 著者 James Allardice,
#step2は私が与えた上記のテーブル構造を包んでいます。各列に非表示のクラスを与え、jqueryで呼び出すことはできますが、それは面倒ですね。
追加された 著者 SMacFadyen,
さて、jQueryについてはわかりませんでした。ありがとう:)
追加された 著者 SMacFadyen,
技術的には、無効なHTMLでは動作しないため、jQueryについてです。私はdivが何処に巻きつけられたのかを選択すると思った。
追加された 著者 SMacFadyen,

3 答え

div#step2をテーブル行の周りにラップしている場合は、適切なマークアップではないため動作しません。テーブル全体を囲む必要があります。 テーブルの一部を保持したい場合は、テーブルの構造を変更する必要があります。

1
追加された

あなたの質問によると、私は多くを言うことができません。

またここにセミコロンがありませんでした

$('#toggle-check').click(function(){

$('#step2').fadeToggle();

})

$(document).ready(function(){}); の中にコードをラップし、セミコロン

$(document).ready(function(){

$('#step2').hide();

$('#toggle-check').click(function(){

$('#step2').fadeToggle();

});

});
0
追加された

ドキュメントの準備ができたらコードが実行されない可能性があります。つまり、ページが非常に短い場合に実行される可能性がありますが、テーブル全体がまだ解析されていない場合は実行されません。

これを試して:

$(document).ready(
{
    $('#step2').hide();

    $('#toggle-check').click(function()
    {
        $('#step2').fadeToggle();
    })
});
0
追加された