为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2019-10-29 10:32:06
我知道这个问题出现在几个地方(迫使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>
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

尝试调用.trigger("create")具有新内容的元素。


根据jQuery Mobile文档,“该create事件适合增强包含一个或多个小部件的原始标记。”


编辑:从jQuery Mobile 1.4开始,.trigger('create') 不推荐使用,而应该使用.enhanceWithin()。(感谢John Mc的单挑。)


查看完整回答
反对 回复 2019-10-29
?
青春有我

TA贡献1784条经验 获得超8个赞

这对我来说适合列表视图


$('ul').listview('refresh');

您也可以刷新可折叠


$('#element').collapsibleset('refresh')


查看完整回答
反对 回复 2019-10-29
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

当我尝试上述解决方案时,我在Firebug中收到一条错误消息


未捕获的异常:不能在初始化之前在listview上调用方法;尝试调用方法“刷新”


我找到了解决方法,而不是.trigger("create")在我调用的新元素追加之后调用


$("ul").listview();

在ajax回调函数的末尾。


这对我来说一切正常。希望能帮助到你。


查看完整回答
反对 回复 2019-10-29
  • 3 回答
  • 0 关注
  • 507 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信