javascript – 从一个地方更改多个jQuery移动“数据主题”属性

前端之家收集整理的这篇文章主要介绍了javascript – 从一个地方更改多个jQuery移动“数据主题”属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 jquery手机开发我的手机网站.我必须从许多地方设置“数据主题属性,以纳入一个特定的主题.有没有一个地方可以改变一次(比如在 JavaScript函数或某些东西),但会导致所有的元素得到主题?我已经尝试把它放入样式表,但它不工作.

我的htmlCode:

<!DOCTYPE html> 
<html>

<head>
    <script src="jquery.mobile-1.0/demos/jquery.js" type="text/javascript"></script>
    <script src="jquery.mobile-1.0/demos/jquery.mobile-1.0.min.js"  type="text/javascript"></script>
    <script src="CodeGeneral.js" type="text/javascript"></script>

    <link rel="stylesheet" href="jquery.mobile-1.0/demos/jquery.mobile-1.0.min.css">
    <link rel="stylesheet" href="StyleMaincss.css">

    <title>Home</title>
</head>

<body onload="GenerateData();" data-role = "page" >
    <div data-role="header" class="HeaderBar">
    <img src="logos v2/Header.png" alt="" class="HeaderImage">
    </div> 

    //Content on page

    <div data-role="footer" class="NavBar" data-position="fixed">       
    <div data-role="navbar">
           //Navigation button creation
        </div>
    </div>
</body>

我的javascript:

$(document).delegate("[data-role='page']",'pagebeforecreate',function () {
         $(this).attr('data-theme','a')
    }
 ); 

function GenerateData() {
    //Things carried out during loading
}

解决方法

这是来自于jQuery Mobile文档:

The data-theme attribute can be applied to the header and footer
containers to apply any of the lettered theme color swatches. While
the data-theme attribute could be added to the content container,we
recommend adding it instead to div or container that has been assigned
the data-role=”page” attribute to ensure that the background color is
applied to the full page. When this is done,all widgets on the page
will also inherit the theme specified in the page container. However,
headers and footers will default to theme “a”. If you want to have a
page with,for example,only theme “b” for all its elements,including
its header and footer,you will need to specify data-theme=”b” to the
page div as well as the header and footer divs.

资料来源:http://jquerymobile.com/demos/1.0/docs/pages/pages-themes.html

所以基本上如果你添加data-theme =“a”到data-role =“page”标签,那么所有的东西都应该继承一个主题.您可以通过在上面链接顶部的“主题样本更改”链接进行测试.

UPDATE

以编程方式更改页面主题将此代码添加到您的网站:

$(document).delegate('[data-role="page"]','pagecreate',function (e) {
    $(this).removeClass('ui-body-a ui-body-b ui-body-c ui-body-d ui-body-e').addClass('ui-body-a').attr('data-theme','a');
});

但是,这会在渲染网站时为用户的浏览器创造开销,因此我建议更改data-role =“page”标签上的硬编码数据主题属性.

UPDATE

您也可以通过更改页面原型来在mobileinit事件处理程序中执行此操作:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script>
$(document).bind('mobileinit',function () {
    $.mobile.page.prototype.options.theme  = "a";
});
</script>
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>

这将使任何没有设置数据主题属性页面默认为一个主题.

这是一个演示:http://jsfiddle.net/tEbD5/3/

猜你在找的jQuery相关文章