【问题标题】:trigger('create') renders properly in Chrome but not in Android emulatortrigger('create') 在 Chrome 中正确呈现,但在 Android 模拟器中不正确
【发布时间】:2015-03-09 10:35:40
【问题描述】:

我正在尝试动态添加输入字段。当我测试代码时,它可以在 chrome 浏览器中运行,但是在用 cordova 包装的 Android 模拟器中进行测试时,它不起作用。为什么会这样?我什至尝试了另外两个示例,所有结果都相同。

    <div data-role="header">
        <h1>My Title</h1>
    </div><!-- /header -->
    <div data-role="content">
        <h3>Add List</h3>
        <form>
            <div data-role="controlgroup"  id="addwhat">
                <input type="text" name="inp0" class="inp" />
            </div>
            <div data-role="controlgroup" data-type="verrical" class="aisubmit">
                <input type="submit" data-theme="b" id="addinput" value="Add Input"/>
            </div>
        </form>
    </div><!-- /content -->
</div><!-- /page -->
<script>
    var ct =0;
    $('body').on('click', "#addinput", function (e) {
        ct++;
        e.stopImmediatePropagation();
        e.preventDefault();
        $('#addwhat').append('<input type="text" name="list' + ct + '"/>');
        $('#thelists').trigger('create');
    });
</script>

【问题讨论】:

    标签: javascript android cordova jquery-mobile phonegap-plugins


    【解决方案1】:

    controlgroup 小部件创建一个容器 DIV,应将子控件添加到该容器 DIV:http://api.jquerymobile.com/controlgroup/#method-container

    此外,在 jQM 1.4.x 中,您可以调用 enhanceWithin() 而不是 trigger("create")。

    查看此代码更改是否有帮助:

    $(document).on("pagecreate", "#page1", function(){        
        var ct =0;
        $(document).on('click', "#addinput", function (e) {
            ct++;
            e.stopImmediatePropagation();
            e.preventDefault();        
            $('#addwhat').controlgroup( "container" ).append('<input type="text" name="list' + ct + '"/>').enhanceWithin();
        });    
    });
    

    【讨论】:

      猜你喜欢
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 2018-10-28
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多