首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改此div在不同页面上的字体系列?

如何更改此div在不同页面上的字体系列?
EN

Stack Overflow用户
提问于 2013-07-10 16:14:23
回答 3查看 471关注 0票数 0

嗨,你能告诉我如何改变div .Actually的字体系列吗?我有一个改变我的application.After字体系列的选项,改变字体系列它应该反映在所有的application.But上,更重要的是一个div (目前不同的页面)有一些ID和class.How来做到这一点。

代码语言:javascript
复制
    $(document).on('change', '#select-choice-1', function() {


     var fontFamily = $(this).val() ; 
      var classesToChange = ".ui-body-c,.ui-btn-text,.ui-li-divider,.ui-header,.ui-li,.panel,.realtimeContend_h";
      $(classesToChange).css("font-family", fontFamily);


    });


<div data-role="fieldcontain">
                        <label for="text-12" style="text-align:left;margin-left: 0px;">Font Family:</label>
                        <select name="select-choice-1" id="select-choice-1">
                            <option>Select Font family</option>
                           <option value="AntiquaAntiqua">AntiquaAntiqua</option>
                            <option value="Arial">Arial </option>
                           <option value="Times New Roman">Times New Roman</option>
                             <option value="Corbel">Corbel</option>
                              <option value="Garamond">Garamond</option>

                        </select>
                    </div>

Div on other page

 <div id="realTimeContents" class="realtimeContend_h">

sdsdfjdsjfkldf;gkd;sklfdfgkldlfg;ld;'gl'dlfgsjkkjkldl;sdf;dfs;;dsfkksdll;;sdkshfhsdfjsieiryidsmfnksdjf
sdsdfjdsjfkldf;gkd;sklfdfgkldlfg;ld;'gl'dlfgsjkkjkldl;sdf;dfs;;dsfkksdll;;sdkshfhsdfjsieiryidsmfnksdjf
sdsdfjdsjfkldf;gkd;sklfdfgkldlfg;ld;'gl'dlfgsjkkjkldl;sdf;dfs;;dsfkksdll;;sdkshfhsdfjsieiryidsmfnksdjf
sdsdfjdsjfkldf;gkd;sklfdfgkldlfg;ld;'gl'dlfgsjkkjkldl;sdf;dfs;;dsfkksdll;;sdkshfhsdfjsieiryidsmfnksdjf
sdsdfjdsjfkldf;gkd;sklfdfgkldlfg;ld;'gl'dlfgsjkkjkldl;sdf;dfs;;dsfkksdll;;sdkshfhsdfjsieiryidsmfnksdjf
                            </div>  


$(document).on('change', '#select-choice-2', function() {
alert("dd")
    var style;
    var font = $(this).val();
    if ($('head').find('style.font').length === 0) {
        style = $('<style class="font">.font { font-size: ' + font + 'px !important; }</style>');
        $('head').append(style);
        $('body *').addClass('font');
    } else {
        $('body *').removeClass('font');
        $('style.font').empty();
        style = '.font { font-size: ' + font + 'px !important; }';
        $('style.font').append(style);
       }


});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-10 16:32:21

您可以使用全局jquery对象并存储用户选择的内容,然后在加载其他页面时应用用户在上一页上选择的内容示例:在第一页上放置以下内容

代码语言:javascript
复制
$.selected = $("#select option:selected").val()

现在,在另一个页面上,将此脚本放入页面div

代码语言:javascript
复制
<script>    
    $("#div").css('font-family',$.selected);
</scrpit>

这就是我如何存储和移动信息从一个页面到另一个页面,因为使用jquery mobile一切都是动态的,我只是查询服务器上的数据,我使用jquery全局对象并在那里存储信息。

票数 1
EN

Stack Overflow用户

发布于 2013-07-10 16:28:01

这将不会像您期望的那样工作。Javascript是基于客户端的,这意味着您所做的更改仅反映在当前屏幕上正在发生的事情上。

如果你想有一个网站能够记住你的访问者有什么字体系列,设置,历史等,你必须使用服务器端的语言和编程。

这可以很容易地完成,例如,当你改变字体时,通过执行一个ajax-call来实现PHP。在ajax-call执行的脚本中,您可以设置cookie或session-value,然后在每次通过输出原始css或添加/切换类来呈现页面时使用此值来反映所需的字体系列。

票数 2
EN

Stack Overflow用户

发布于 2013-07-10 16:42:09

因此,如果我理解正确的话,问题是您想要在整个应用程序范围内更改字体。问题是css将定义浏览器会话中的字体。仅仅在文档中更改一次并不会在整个浏览器会话中刷新它,这意味着当用户刷新页面或单击链接转到另一个页面时,将使用原始css,而不是他们的更改。

有很多方法可以做到这一点:

1) cookies 2)会话变量服务器端3)查询行变量4)加上其他变量...

可以工作的东西的示例代码。为了简单起见,我使用的是carhart jquery cookie插件。(请参阅此处https://github.com/carhartl/jquery-cookie):

代码语言:javascript
复制
$(document).on('change', '#select-choice-2', function() {
alert("dd")
    var style;
    var font = $(this).val();
    if ($('head').find('style.font').length === 0) {
        style = $('<style class="font">.font { font-size: ' + font + 'px !important; }</style>');
        $('head').append(style);
        $('body *').addClass('font');


    } else {
        $('body *').removeClass('font');
        $('style.font').empty();
        style = '.font { font-size: ' + font + 'px !important; }';
        $('style.font').append(style);
       }

    //additional code
       $.cookie("font", font);
});

$(document).ready(function(){

if($.cookie("font"))
{
   var font = $.cookie("font");
   style = $('<style class="font">.font { font-size: ' + font + 'px !important; }</style>');
            $('head').append(style);
}

});

我不确定这是否是你想要的工作方式,但还是有一些类似的东西。基本上,每次加载DOM时,它都需要查看是否设置了字体cookie。如果是,则设置存储在cookie中的字体。

还有许多其他方法(以及探索更好的方法)可以做到这一点,但这只是一个简单的示例,让您开始。希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17565561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档