jQuery mobile:插入新元素的样式不正确

时间:2012-07-08 08:16:59

标签: jquery jquery-mobile cordova

将新的jQuery移动元素插入页面时,即使在包含元素上使用.trigger("create");,它们也不能正确设置样式。然而,这确实在某种程度上设置了正确的样式但却不尽如人意。

例如,当像这样追加时:

for (var i=0; i<len; i++){
            ...
            $('#results').append("<a href='#' data-role='button'>"+content+"</a>");
        }
        $('#results').trigger("create");

显示如下:

enter image description here

注意额外的圆角。然而,如果我只是在页面上包含代码,它就会正确显示:

enter image description here

在页面加载后,只要我在页面中加载任何内容,就会发生同样的问题。除了强制自定义样式表中的样式之外,有没有人知道这个方法呢?

2 个答案:

答案 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中编辑样式,或者用样式表覆盖它。