Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Jquery移动组件中以编程方式更改主题_Jquery_Jquery Mobile - Fatal编程技术网

在Jquery移动组件中以编程方式更改主题

在Jquery移动组件中以编程方式更改主题,jquery,jquery-mobile,Jquery,Jquery Mobile,为什么主题“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">

为什么主题“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>

标题
$(document).bind('pageinit',function(){
$('input').attr('data-theme','e');
});

您可能需要触发刷新

$('input').attr('data-theme', 'e').trigger('refresh');

您可能需要触发刷新

$('input').attr('data-theme', 'e').trigger('refresh');

由于
.textinput
不适用于
刷新
创建
,因此这里有一个简单的方法

$('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时覆盖它


由于
.textinput
不能与
刷新
创建
一起使用,下面是一个简单的方法

$('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时覆盖它


似乎没有直接简单的方法来做到这一点

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

为什么我们不能考虑更换组件本身?(类似于下面的内容)

$('selector').html(''.trigger('create');

如果您的组件有许多属性,那么这种方法可能有点奇怪,但它似乎是可靠的,并且适用于您喜欢动态更改的任何JQM组件。

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

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

为什么我们不能考虑更换组件本身?(类似于下面的内容)

$('selector').html(''.trigger('create');

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

您测试过它还是根据理论编写的?:-)它不适合我!只是根据理论写作,也可以查阅:)。你用
.buttonMarkup()
函数尝试了任何东西?你测试了它还是用理论写作?:-)它对我不起作用!只是根据理论写作,也可以查阅:)。您使用
.buttonMarkup()
函数尝试了任何操作?
$(“#输入”).textinput({theme:“e”})上面的代码在初始化输入时有效,但在将输入创建到DOM中之后,最好的方法是添加/删除类。这正是Jquery文档中的内容。但它不起作用!你测试过自己吗?
$(“#输入”).textinput({theme:“e”})上面的代码在初始化输入时有效,但在将输入创建到DOM中之后,最好的方法是添加/删除类。这正是Jquery文档中的内容。但它不起作用!你测试过自己吗?