1

使用中の jQuery UI テーマを変更するための選択入力のあるページを作成しました。テーマが変更されると、Cookie に保存されます。ページが読み込まれるときに、Cookie が存在する場合はテーマが復元され、存在しない場合はデフォルトのテーマが読み込まれます。

F5 を使用してページを更新するとコードは機能しますが、ctrl + F5 を使用して完全なリロードを強制すると機能しません。それは私のコードの問題ですか、それとも通常の効果ですか?

必要に応じて私のコードは次のとおりです。

(function($) {

    $(function() {

        var $themeSelect = $('#themeSelect');

        var initialTheme = $.cookie('theme');

        $themeSelect.on('change', function() {
            var dir = 'jQueryUI/css/' + $themeSelect.val();            
            $('#uiThemeA').attr('href', dir + '/jquery-ui.min.css');
            $('#uiThemeB').attr('href', dir + '/jquery.ui.theme.css');
            $.cookie('theme', $themeSelect.val());
        });

        if(initialTheme !== undefined) {
            $themeSelect.children().each(function(index, element) {
                var $element = $(element);
                if($element.attr('selected')) {
                    $element.removeAttr('selected');
                }
                if($element.attr('value') === initialTheme) {
                    $element.attr('selected');
                }
            }).trigger('change');
        } else {
            $.cookie('theme', $themeSelect.val());
        }

    });

})(jQuery);

ご協力いただきありがとうございます !

4

1 に答える 1

0

私は問題を見つけました:

私のコードに間違いがありました:

if($element.attr('value') === initialTheme) {
    $element.attr('selected');
}

する必要があります:

if($element.attr('value') === initialTheme) {
    $element.attr('selected', 'selected');
}

いいえ、強制リロードでは Cookie は削除されません

于 2013-07-26T19:00:49.507 に答える