我创建了一个带有select输入的页面来更改正在使用的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);
感谢您的帮助!
答案 0 :(得分:0)
我发现了问题:
我的代码出错:
if($element.attr('value') === initialTheme) {
$element.attr('selected');
}
应该是:
if($element.attr('value') === initialTheme) {
$element.attr('selected', 'selected');
}
不,强制重新加载不会删除Cookie 。