动态添加内容后,jQuery Mobile不应用样式

我知道这个问题出现在几个地方(迫使jQuery Mobile重新评估动态插入的内容的样式/主题),但是没有一个对我有用的答案。


我正在使用ajax加载一些内容,并将其插入到div中,如下所示:


       $.ajax({

            url: "../Services/CalendarService.cshtml?service=true",

            cache: false,

            success: function (data) {


                data = $.parseJSON(data);

                var s = $("#user_tmpl").html();

                var s1 = tmpl(s, data);


                $("#target").html(s1);

                $("#targetRefresh").page();

            }

        });

我尝试在要添加html的目标和页面上都设置targetRefresh,但是没有运气。插入了内容,但未应用样式。


我也尝试过


.trigger("enhance")

知道该怎么办吗?


插入的html是一堆这样的:


<div data-theme="e" data-collapsed="true" data-role="collapsible">         <h3>MyOwner2AA</h3>         <p>MyDescription</p>         <p>/Date(1320339836735)/</p>         <p>MyOwner</p>         <i></i>     </div>


心有法竹
浏览 385回答 3
3回答

ibeautiful

尝试调用.trigger("create")具有新内容的元素。根据jQuery Mobile文档,“该create事件适合增强包含一个或多个小部件的原始标记。”编辑:从jQuery Mobile 1.4开始,.trigger('create') 不推荐使用,而应该使用.enhanceWithin()。(感谢John Mc的单挑。)

catspeake

这对我来说适合列表视图$('ul').listview('refresh');您也可以刷新可折叠$('#element').collapsibleset('refresh')

慕妹3146593

当我尝试上述解决方案时,我在Firebug中收到一条错误消息未捕获的异常:不能在初始化之前在listview上调用方法;尝试调用方法“刷新”我找到了解决方法,而不是.trigger("create")在我调用的新元素追加之后调用$("ul").listview();在ajax回调函数的末尾。这对我来说一切正常。希望能帮助到你。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery