所以我对jQueryMobile相当新,但我设法创建了一个搜索栏,显示结果,因为你正在使用Ajax打字工作得很好但问题是CSS样式没有应用于ajax 'd content。
有没有办法可以强制CSS刷新或重新缓存,或者只是让CSS应用于新的ajax'd html?
答案 0 :(得分:1)
增强新标记
页面插件调度一个pagecreate事件,大多数小部件都使用它来自动初始化自己。只要 当引用widget插件脚本时,它会自动增强 它在页面上找到的小部件的任何实例。但是,如果您通过生成新标记客户端或加载内容 Ajax并将其注入页面,您可以触发create事件 处理其中包含的所有插件的自动初始化 新标记。这可以在任何元素(甚至是页面)上触发 div本身),为您节省了手动初始化每个插件的任务 (列表视图按钮,选择等)。
例如,如果加载了一个HTML标记块(比如一个登录表单) 通过Ajax,触发create事件自动转换 它包含的所有小部件(在这种情况下为输入和按钮) 增强版本。此方案的代码为:
$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );
创建与刷新:重要区别
请注意,create事件和刷新方法之间存在重要差异 一些小部件有。 create事件适合增强原始 包含一个或多个小部件的标记。刷新方法应该是 用于已经被操纵的现有(已经增强的)小部件 以编程方式,需要更新UI以匹配。例如,如果您有一个动态添加新页面的页面 页面后面带有
data-role=listview
属性的无序列表 创建,触发该列表的父元素上的创建 将其转换为listview样式的小部件。如果有更多列表项 然后以编程方式添加,调用listview的refresh方法 会将这些新列表项更新为增强状态并离开 现有的列表项目未受影响。
jQM Docs:
刷新表单元素
在jQuery Mobile中,一些增强的表单控件只是样式化(输入),但其他是自定义的 从中构建并与之保持同步的控件(选择,滑块) 本地控制。以编程方式更新表单控件 JavaScript,首先操作本机控件,然后使用刷新 告诉增强控件更新自身以匹配新的方法 州。以下是如何更新常用表单控件的一些示例, 然后调用refresh方法:
复选框:
$("input[type='checkbox']").prop("checked",true).checkboxradio("refresh");
收音机:
$("input[type='radio']").prop("checked",true).checkboxradio("refresh");
选择
var myselect = $("#selectfoo");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");
滑块:
$("input[type='range']").val(60).slider("refresh");
翻转开关(他们使用滑块):
var myswitch = $("#selectbar");
myswitch[0].selectedIndex = 1;
myswitch.slider("refresh");
jQM Docs: