我一直关注javascript css切换器的Kevin Luck示例。 http://www.kelvinluck.com/assets/jquery/styleswitch/index.html
我得到了我的本地项目。 我的问题是,当我使用Kevin Luck使用的旧javascript时,它可以工作。 当我尝试更新jQuery版本时,它会破坏。如何更新此示例以使用最新的1.10.2 jQuery?
索引页面如下(相关部分)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Public Identity</title>
<link rel="stylesheet" type="text/css" href="css/collegeStyles.css" title="college" media="screen" />
<link rel="alternate stylesheet" type="text/css" href="css/corporateStyles.css" title="corporate" media="screen" />
<!-- Google CDN jquery -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<!-- // <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> -->
<!-- css style switcher -->
<script type="text/javascript" src="styleswitch.js"></script>
jQuery(styleswitcher.js)看起来像这样
/**
* Styleswitch stylesheet switcher built on jQuery
* Under an Attribution, Share Alike License
* By Kelvin Luck ( http://www.kelvinluck.com/ )
**/
(function($)
{
$(document).ready(function() {
$('.styleswitch').click(function()
{
switchStylestyle(this.getAttribute("rel"));
return false;
});
var c = readCookie('style');
if (c) switchStylestyle(c);
});
function switchStylestyle(styleName)
{
$('link[@rel*=style][title]').each(function(i)
{
this.disabled = true;
if (this.getAttribute('title') == styleName) this.disabled = false;
});
createCookie('style', styleName, 365);
}
})(jQuery);
// cookie functions http://www.quirksmode.org/js/cookies.html
function createCookie(name,value,days)
{
if (days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name)
{
createCookie(name,"",-1);
}
// /cookie functions
唯一相关的css是样式表名称,称为大学和公司。你可以在上面的php / html代码中看到它们。 我很困惑为什么会破坏,我不知道如何解决。任何想法都会非常有用。 谢谢!
答案 0 :(得分:2)
更改
$('link[@rel*=style][title]').each(function(i)
到
$('link[rel*=style][title]').each(function(i)
在jQuery 1.3 [@attr]中删除了样式选择器(它们是 以前在jQuery 1.2中弃用的)。只需删除“@”符号即可 来自您的选择器,以使它们再次工作。