2

私は、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 は、スタイル シート名であり、college およびcorporate と呼ばれます。上記のphp / htmlコードでそれらを見ることができます。なぜこれが壊れるのかについてかなり混乱しており、修正方法がわかりません。どんなアイデアでも本当に役に立ちます。ありがとう!

4

1 に答える 1

3

変化する

$('link[@rel*=style][title]').each(function(i) 

$('link[rel*=style][title]').each(function(i) 

jQueryのドキュメントから:

jQuery 1.3 では [@attr] スタイル セレクターが削除されました (以前は jQuery 1.2 で廃止されていました)。セレクターを再び機能させるには、セレクターから「@」記号を削除するだけです。

于 2013-08-28T22:55:38.110 に答える