1

Jquery 和 Jquery Mobile 的版本

jquery-1.9.1.min.js
jquery.mobile-1.3.2.min.js

我对inputelement的 textinput 插件进行了一些测试

这是我的代码

<div data-role="page" id="index">
    <div data-role="content">
        <form>
            <label for="text-1">Text input:</label>
            <input type="text" name="text-1" id="text-1" value="">

            <input type="button" name="text-3" class="btnFinish" value="Finish">
        </form>
    </div>
</div>

<script>
    $(document).on('pageinit', function () {
        $('#text-1').textinput({ theme: 'a' });
        $('.btnFinish').buttonMarkup({corners: false });
    });
</script>

文本输入元素的主题没有改变。但是当我评论 pageinit 事件时,文本输入元素的主题将会改变

<script>
        //$(document).on('pageinit', function () {
            $('#text-1').textinput({ theme: 'a' });
            $('.btnFinish').buttonMarkup({corners: false });
        //});
</script>

而且我已经尝试过其他事件,例如pagecreate, pageload, pageshow,文本输入都没有改变。

而且我也试过jquery中的ready事件,也没有效果。

$('.btnFinish').buttonMarkup({corners: false });总是有效的。

而结论是“文本输入法无论如何都不有效?”,我觉得很奇怪。有人可以解释一下吗?非常感谢。

4

1 回答 1

2

当你做某事时,总是以正确的方式去做。

首先,当使用页面事件时,总是将其绑定到某个页面或所有页面,如下所示:

$(document).on('pagecreate', '#index', function(){ 
    $('#text-1').textinput({ theme: 'a' });
    $('.btnFinish').buttonMarkup({corners: false });
});

或这个:

$(document).on('pagecreate', '.ui-page', function(){ 

});

另外,因为一些 jQuery Mobile 小部件在您更改主题时有点混乱,所以总是尝试在pagecreatepagebeforcreate事件中进行。主要是因为此时 jQuery Mobile 仍在等待增强 HTML 标记。

工作 jsFiddle 示例:http: //jsfiddle.net/Gajotres/PMrDn/104/

使用的Javascript:

$(document).on('pagecreate', '#index', function(){ 
    $('#text-1').textinput({ theme: 'a' });
    $('.btnFinish').buttonMarkup({corners: false });
});

最后一个建议,永远不要使用 jQuery Mobile 准备好的文档(人们告诉你的)。这有几个原因,请在此处阅读更多信息。

如果您有更多问题,请随时发表评论。

于 2013-09-07T15:33:42.530 回答