0

为什么主题“e”没有反映在输出中?

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
        <title>title</title>

        <script>
            $(document).bind('pageinit', function() {
                $('input').attr('data-theme', 'e');
            });
        </script>

    </head>

    <body>

        <input type="text" />

    </body>
</html>
4

3 回答 3

3

由于.textinput不适用于refreshnor create,这里有一个简单的方法。

$('input').closest('div').removeClass('ui-body-c');
$('input').closest('div').addClass('ui-body-e');

输入的默认主题是c,因此您将其从父 div 中删除并添加主题e。但是,textinput仍然有ui-body-c类,但ui-body-e在添加到父 div 时会覆盖它。

演示

于 2013-04-23T15:39:15.013 回答
0

似乎没有直接和简单的方法可以做到这一点。

Omar 提出了一个可行的解决方案,但这取决于 JQM 呈现组件的方式。如果他们更改渲染模型,这可能不适用于 JQM 的未来版本。

为什么我们不能考虑更换组件本身?(如下所示)

$('selector').html('<input type="text" data-theme="e"/>').trigger('create');

如果您的组件有很多属性,此方法可能有点奇怪,但它似乎可靠且适用于您希望动态更改的任何 JQM 组件。

于 2013-04-24T06:02:25.110 回答
0

您可能必须触发刷新。

$('input').attr('data-theme', 'e').trigger('refresh');
于 2013-04-22T14:11:35.647 回答