0

ラジオ ボタンをクリックすると変更を実行できますが、問題は、ページをリロードするとラジオ ボタンの選択は保持されますが、変更は保持されないことです。つまり、ラジオ ボタン #1 をクリックすると、特定のフィールドの不透明度が下がります。このページに戻ると、すべてのフィールドが完全に不透明になり、ラジオ ボタンをもう一度クリックするまでチャンスが実行されません。

これが私のコードです:

(function($) {

    // Document Ready
    $(document).ready(function() {

        // trigger change on the radio list to show selected field
        $('#acf-feature_slide ul.radio_list li label input').trigger('change');

    });

    // Content Type change
    $('#acf-feature_slide ul.radio_list li label input').live('change', function() {

        // vars
        var value = $(this).val();

        // show the selected field
        if( value == "internal" ) {
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '1.0');
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '0.2');
        }
        else if( value == "external" ) {
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '0.2');
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '1.0');
        }
        else if( value == "none" ) {
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '0.2');
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '0.2');
        }
        else {
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '1.0');
            $(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '1.0');
        }

    });

})(jQuery);

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

ありがとう、

4

1 に答える 1

0

一部のブラウザーでは、リロード時に特定のボタンに対して選択した選択が保持されます (常に動作するか、すべてのブラウザーで動作することが保証されているわけではありません) が、トリガーされたイベントなどは確実に保持されません。つまり、ラジオ ボタンの選択と不透明度の選択を 2 つの方法のうちの 1 つ (または両方) で保存して、リロード後も維持されるようにする必要があります。

現在のコードには何も保存されていません - あなたのケースでは幸運にも、リロード時にブラウザがラジオ ボタンの選択を保持していました。

編集:ラジオボタンで運が良かったわけではありません...とてもいいです!リロード時にラジオ ボタンがチェックされたままになっていることを確認できる場合は、チェックされているかどうかを確認できます。

検証したいラジオボタンのIDを正確に知っているとしましょう - そして、それがチェックされているかどうかを知りたいとします。ドキュメントの読み込み時にこれを行います: $('#myradiobutton').is(':checked'); チェックされていない場合は false を返し、チェックされている場合は true を返します。次に、ifステートメントを使用して言うことができます

if( $('#myradiobutton').is(':checked') ){
   dothis();
}
于 2012-09-05T01:20:03.287 に答える