2

チェックボックスがあります。チェックすると段落が表示されます。チェックを外すと非表示になります。問題ありません。問題は、チェックボックスをオンにした場合、F5(更新)ボタンを押すと、チェックボックスはオンのままですが、段落が非表示になります。ページを更新するときに段落を表示させたい。

HTMLは次のとおりです。

<input type="checkbox" id="something">
<p id="info" style="display:none">Yes ,checkbox is checked now...</p>

これがJqueryです:

$(document).ready(function() {

    $("#something").change( function(){
        if( $(this).is(':checked') ) {
            $("#info").show();
        } else {
            $("#info").hide();
        }
    });
});
4

5 に答える 5

3

ロード時にチェックボックスの状態をチェックする必要があります:

$(document).ready(function() {
    function f() {
       if( $('#something').is(':checked') ) {
            $("#info").show();
        } else {
            $("#info").hide();
        }
    }
    $("#something").change(f);
    f();
});
于 2012-11-09T13:15:52.443 に答える
2

イベントをトリガーするだけです

$(document).ready(function() {

    // this only runs upon the event
    $("#something").change( function(){
        if( $(this).is(':checked') ) {
            $("#info").show();
        } else {
            $("#info").hide();
        }
    });

    // trigger the event
    $("#something").trigger("change");
});
于 2012-11-09T13:16:31.537 に答える
1

現在の動作は、変更用のイベントハンドラーがあるためです。したがって、F5を実行して更新すると、チェックされていても変更はありません。

この関数はdocument.readyで明示的に呼び出すことができます

function SetParagraphStatus() {
    if ($(this).is(':checked')) {
        $("#info").show();
    } else {
        $("#info").hide();
    }
}

$(document).ready(function () {

    $("#something").change(SetParagraphStatus);
    // call it anyway for load.
    SetParagraphStatus();
});
于 2012-11-09T13:17:26.530 に答える
1

変更イベントをトリガーするだけです。

$(document).ready(function() {
    $("#something").change(function(){
        $("#info").toggle(this.checked);
    }).change()
})
于 2012-11-09T13:20:09.237 に答える
0
$(window).bind("beforeunload", function(){

    $("#something >#info").show();

});
于 2014-08-28T21:15:33.253 に答える