jquery-mobile - 动态生成支持 JQuery Mobile 主题的内容

标签 jquery-mobile user-interface dynamically-generated

我正在尝试生成带有一些标题文本的 header ,但添加的动态内容不支持 JQuery Mobile 主题。当添加任何其他按钮、输入文本框等时,会出现相同的结果:等等:有办法解决这个问题吗?

这是我的 fiddle - http://jsfiddle.net/fABC7/

这是我的代码:

<!DOCTYPE html>
<html>
<head>
<title>Website Title</title>
<meta name='Description' content="Describe your website here...">
<meta http-equiv='Content-Type' charset='utf-8' content='text/html;charset=ISO-8859-1'>
<meta name='Keywords' content='words, describing, your, website'>
<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>
<style type="text/css">
</style>
<script type='text/javascript'>
$(document).ready(function() {
  var fixgeometry = function() {
    /* Some orientation changes leave the scroll position at something
    * that isn't 0,0. This is annoying for user experience. */
    scroll(0, 0);

    /* Calculate the geometry that our content area should take */
    var header = $(".header:visible");
    var footer = $(".footer:visible");
    var content = $(".content:visible");
    var viewport_height = $(window).height();

    var content_height = viewport_height - header.outerHeight() - footer.outerHeight();

    /* Trim margin/border/padding height */
    content_height -= (content.outerHeight() - content.height());
    content.height(content_height);
   }; /* fixgeometry */

   $(window).bind("orientationchange resize pageshow", fixgeometry);

  $("input#submitheader").click(function() {
    var headeropen = "<div data-role='header' "
    var headercloseopenmark = "'>"
    var headerheadingopen = "<h1>"
    var pageheaderheading = $("input#headerheading").val();
    var headerheadingclose = "</h1>"
    var headerclose = "</div>"

    $("#1stpagename").append((headeropen) + (headercloseopenmark) + (headerheadingopen) + (pageheaderheading) + (headerheadingclose) + (headerclose));});

});
</script>
</head>
<body>
<div data-role="page" class="pages" id="1stpagename">
    <div id="genoptions">
        Theme:<br>
        <select name="selectthemeheader">
            <option value="a" selected="selected">Black</option>
            <option value="b">Blue</option>
            <option value="c">Gray</option>
            <option value="d">Light Gray</option>
            <option value="e">Yellow</option>
        </select><br><br>

        Fixed:<br>
        <select name="selectfixedheaderoption">
            <option value="1">Yes</option>
            <option value="2" selected="selected">No</option>
        </select><br><br>

        Heading:<br>
        <input type="text" id="headerheading" placeholder="My Website" value="Placeholder"><br><br>

        Heading Size:<br>
        <select name="selectheaderheadingsize">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3" selected="selected">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select><br><br>

        <input value="Submit" type="submit" id="submitheader">
    </div>
</div>
</body>
</html>

最佳答案

要动态创建 [data-role=header][data-role=footer],您需要使用 $(' [data-role=page]').trigger('pagecreate');.

jQuery Mobile 中的每个小部件都应使用 createpagecreateupdatelayoutrefresh 进行增强。使用这些方法取决于您想要增强的项目。检查此以了解有关 Enhancing Dynamic Contents 的更多信息.

Demo

附加新 header 后,添加

$('[data-role=page]').trigger('pagecreate');

关于jquery-mobile - 动态生成支持 JQuery Mobile 主题的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16631208/

相关文章:

jquery - 按钮在函数调用时丢失格式

javascript - 如何在html5中使用javascript从页面加载的查询字符串中获取值

jQuery 手机 : remove rangeslider label and make slider wider

java - GUI编程和上传图像?

javascript - 在 React 中动态生成的链接之外的 html 链接之间添加项目符号 (•)

html - 在 JQuery Mobile 中编辑可折叠小部件内的输入元素

python - 如何在不同的Qt线程中调用GUI元素?

java - 我可以将paintComponents() 添加到数组中吗?

javascript - 有什么更好的方法来设计句子生成器的内置统计函数?

javascript - 以编程方式创建涵盖特定持续时间的雷声