1

最近、私は少しのjsに取り組んでいます。

したがって、基本的に、私の問題は、パラメーターに渡されたものを非表示にするか、既に非表示になっている場合は表示する必要があることです。

これが私のコードです:

<script type='text/javascript'>
<!--
function toggleReport(table){
//the table argument is the table's id
alert(table);                    //to check that the name of the table is right
if($('#table').is(':visible')){ //check if visible
    $('#table').hide();     //if so, hide it
    alert('hide');          //send a message that it is now being hidden
}else{                          //if already hidden
alert('show');                  //send a message that it is now being shown
$('#table').show();             //show the table
}

}
//-->
</script>

ただし、機能しません....アラートを送信しており、すべてが正しいですが、テーブルを非表示にしたり表示したりしません....

しかし、私がこれをやろうとすると:

<script type='text/javascript'>
<!--
function toggleReport(){
//removed the argument
alert('table_1');
if($('#table_1').is(':visible')){
    $('#table_1').hide();
    alert('hide');
}else{
alert('show');
$('#table_1').show();
}

}
//-->
</script>

できます!なぜそうなのですか?なぜなら、私はウェブサイト上に多くのテーブルや、隠したり表示したりする必要がある他のものを持ち、それぞれに新しい関数を作りたくないからです.. :/

私を助けてください!

ありがとう!!

4

6 に答える 6

2

非常に単純に、show()/hide( ) の代わりにtoggle()使用します。toggle()は、非表示の場合は要素を表示し、表示されている場合は非表示にします。

<script type='text/javascript'>;
function toggleReport(element_ID){
$("#"+element_ID).toggle();
}
</script>

次のスクリプトを使用するよりも要素 ID をハードコーディングする場合

<script type='text/javascript'>
function toggleReport(){
$("#table_1").toggle();
}
</script>

乾杯、そして私の答えに投票するのを忘れないでください:)

于 2012-05-25T05:26:33.577 に答える
1

要素参照を渡す場合は、それをセレクターとして使用します。

function toggleReport(table){
    $(table).toggle();
}

私が使用していることに注意してください.toggle()。これは、手動でやろうとしていることを正確に行います。新しい状態をログに記録したい場合は、コールバックで行うことができます:

function toggleReport( table ) {
    $( table ).toggle('fast', function(){
        console.log( "Element is visible? " + $(this).is(":visible") );
    });
}

要素の ID を渡す場合は、セレクターを変更する必要があることに注意してください。

$( "#" + table ).toggle();
于 2012-05-25T05:18:10.007 に答える
1

これには、事前に作成された Jquery 関数があります。

于 2012-05-25T05:18:52.283 に答える
0

トグル機能を使用してこれを実現できます....

$(selector).toggle();
于 2012-05-25T05:19:55.017 に答える
0

元の関数で犯した間違いは、関数に渡したパラメーターを実際に使用しなかったことです"#table"。ID「テーブル」を持つページ上の要素を選択しただけです。変数をまったく参照していませんでした。

ID をセレクターに渡すことを意図している場合は、jQuery("#" + table). table が代わりに DOM 要素への参照である場合は、次のように記述しますjQuery(table)(引用符とシャープ記号は使用しません)。

于 2012-05-25T06:12:54.160 に答える
0

デモ http://jsfiddle.net/uW3cN/2/

パラメータを渡したデモ http://jsfiddle.net/uW3cN/3/

Good read API トグル: http://api.jquery.com/toggle/

コード

function toggleReport(){
//removed the argument
$('#table_1').toggle();

}

<strong>別の残りのサンプル html がここにありますhttp://jsfiddle.net/uW3cN/3/

function toggleReport(tableid){
//removed the argument
$('#'+tableid).toggle();

}

</p>

于 2012-05-25T05:24:11.080 に答える