类似的问题已多次发布,但我找不到有效的解决方案。希望有人可以提供帮助!
我正在使用 jQuery Mobile 1.1 和 jQuery 1.7.2,所以我使用的是最新的稳定版本。我想创建一个动态页眉。使用此 HTML 代码,它可以正常工作:
<div data-role="page" id="levela">
<div data-role="header" id="hdr_levela">
<h1>Title</h1>
</div>
</div>
所以我然后去动态创建标题。我将 HTML 更改为:
<div data-role="page" id="levela">
<div data-role="header" id="hdr_levela">
</div>
</div>
并添加了以下 jQuery 代码:
// Set the header
var dirHeader = $('#hdr_levela');
dirHeader.append('<h1>' + title+ '</h1>');
标题出现,但没有样式。我找到了几个关于这个的帖子。在 jQuery Mobile 文档中,它说:
“但是,如果您在客户端生成新的标记或通过 Ajax 加载内容并将其注入页面,则可以触发 create 事件来处理新标记中包含的所有插件的自动初始化。这可以触发在任何元素(甚至是页面 div 本身)上,省去了手动初始化每个插件(listview 按钮、选择等)的任务。
例如,如果通过 Ajax 加载了 HTML 标记块(例如登录表单),则触发 create 事件以自动将其包含的所有小部件(在本例中为输入和按钮)转换为增强版本。这种情况的代码是:
$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );
所以我尝试了几件事。在上面的代码之后,我添加了以下内容:
dirHeader.trigger("create");
这没有效果。所以我试图把它放在实际的附加本身上:
dirHeader.append('<h1>' + folderName + '</h1>').trigger("create");
这没有效果。然后我在父元素上尝试了这个过程(在这种情况下,父 div 的 id 是“levela”)。所以我尝试了这个:
$('#levela').trigger("create");
这也没有效果。在这一点上,我完全迷失了。每个解决方案都涉及做我尝试过但不起作用的事情之一。我一定错过了一些非常基本的东西,但我似乎找不到它。
在此先感谢您的帮助!