将新的jQuery移动元素插入页面时,即使在包含元素上使用.trigger("create");
,它们也不能正确设置样式。然而,这确实在某种程度上设置了正确的样式但却不尽如人意。
例如,当像这样追加时:
for (var i=0; i<len; i++){
...
$('#results').append("<a href='#' data-role='button'>"+content+"</a>");
}
$('#results').trigger("create");
显示如下:
注意额外的圆角。然而,如果我只是在页面上包含代码,它就会正确显示:
在页面加载后,只要我在页面中加载任何内容,就会发生同样的问题。除了强制自定义样式表中的样式之外,有没有人知道这个方法呢?
答案 0 :(得分:3)
“创建”事件增强了触发元素中的子标记(例如$('#results')...)。
所以,你可以通过替换
来解决$('#results').trigger("create");
与
$('#results').parent().trigger("create");
<强> Demo:jsfiddle 强>
答案 1 :(得分:0)
Jquery mobile使用html属性来设置页面样式,其中一些样式还涉及向页面添加某些元素(span,div等)。
Jquery mobile还附带了一个可以解释其风格的CSS。因此,即使您有一个非常简单的HTML页面,如果您使用firebug或其他检查工具查看它,您会看到很多其他元素动态添加到页面。
如果你去添加另一个元素,你需要确保它适合jquery mobile css设计。如果没有,你需要找到影响你新添加的elemnt的类(再次使用firebug),并在jquery mobile css中编辑样式,或者用样式表覆盖它。