在每次单击时使用Jquery在同一链接上切换js和css文件

时间:2012-11-21 18:59:42

标签: javascript jquery css element font-face

几周前,“Kundan Singh Chouhan”帮我解决了这个问题: Call a CSS file by Jquery .append(), and delete this by second click on the same element

但问题变得更加复杂。我想用我们古老的文字,网站上的“Rovás”: Jakabszallas.hu

我不能使用简单的font-face CSS,因为有字母(dzs,cs,gy,ty)在Rovás写作中有一个简单的字符。这就是为什么“Rovás”字体系列的创作者不会将字符放在他们所属的键盘上。因此,rovás“á”字母不在我键盘上的拉丁语“á”字符下。

这就是他们创建这个javascript的原因: Rovásmag

现在我在我的网站上使用此功能,并且当我过去使用font-face时,我在网站(右上角)上使用相同的链接触发。

所以,有这个链接:

<li class="skip-link-rovas"><a class="assistive-text" href="#" accesskey="7">Rovás</a></li>

我的网站底部有这个javascript:

<script src="http://jakabszallas.hu/wp-content/themes/jakabszallasv2/js/rovasmag.js" type="text/javascript"></script><!-- Rovas -->
<script src="http://jakabszallas.hu/wp-content/themes/jakabszallasv2/js/scripts.js" type="text/javascript"></script><!-- Additional scripts -->

在scripts.js中这两个jquery脚本:

// Jquery CSS switcher (Rovás)
$(document).ready(function() {
    $(".skip-link-rovas").click(function(){
        if($(this).find("link").length <= 0)
            $(this).append('<link rel="stylesheet" type="text/css" media="all" href="http://jakabszallas.hu/wp-content/themes/jakabszallasv2/css/rovas.css" />');
        else
            $(this).find("link").remove();
    });
});

$(document).ready(function() {
    $('.skip-link-rovas').click(function(){
        rovasmag_atro();
    });
});

“rovasmag_atro();”正在调用“rovasmag.js”javascript,它将每个字体更改为“Rovás”,并且还将书写方向从右向左改变。这个javascript是将“dzs,cs,gy,ty”字母改为“Rovás”字体中正确字符的唯一方法。

我根本不是javascript程序员! 我的问题是: 有可能以某种方式将“rovasmag_atro()”集成到上层javascript中,这就是调用css文件,在第二次点击时,它会关闭吗?

1 个答案:

答案 0 :(得分:1)

似乎您不能简单地关闭,因为您需要撤消所有这些字符翻译。相反,当页面加载时,您可以将整个页面内容复制到JS变量。然后添加CSS并开始字体/字符转换。然后删除字体翻译,只需用Javascript变量替换整个页面内容。我用这种技术创造了一个jsFiddle:

http://jsfiddle.net/DF2w9/5/

<a class="remove" href="#">remove</a>

<script type="text/JavaScript">
var normalHTML = '';
$(document).ready(function() {
    normalHTML = $('html').html();
    $('html').append('<link rel="stylesheet" type="text/css" media="all" href="http://jakabszallas.hu/wp-content/themes/jakabszallasv2/css/rovas.css" />');
    rovasmag_atro();

    $("a.remove").click(function() {
        $('html').html(normalHTML);
    });
});
</script>