gpt4 book ai didi

javascript - JQuery Mobile 在导航页面后丢失所有样式

转载 作者:可可西里 更新时间:2023-11-01 02:55:22 26 4
gpt4 key购买 nike

我很头疼,在过去的几个小时里,我无法弄清楚为什么当我在页面之间轻弹(由 ajax 动态加载)时,样式全部消失。

我已经在网上阅读了很多关于此的帖子,并尝试了 .page() trigger("Refresh") trigger create 等等。

Page 1 有一个列表,在点击该元素时它会获取另一个列表的完整内容并将它们放入 DOM 中。

JQuery 版本(移动版 1.1rc2 - 但与 1.0.1 稳定版相同的问题):

<script src="scripts/ajax.js"></script>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.css">

这个链接在初始列表中被点击:

javascript:GetGarageList("G9236")

触发:

// show garages for factor
function GetGarageList(accNo) {
$.mobile.showPageLoadingMsg("b", "Loading", false);
$.ajax({
type: "POST",
url: "Default.aspx/GetGarageList",
data: "{'accNo':'" + accNo + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#garageList").html(msg.d);
$.mobile.changePage("#garageList");
},
error: function () {
ShowError("Error :(");
},
complete: function () {
$.mobile.hidePageLoadingMsg();
}
});
};

第一次加载时,第二页看起来很完美:

enter image description here

但是当我按下顶部的后退按钮时。然后单击另一个链接:

javascript:GetGarageList("G9336")

我搞砸了 View :

enter image description here

请帮忙!

编辑:

其他人使用了 .trigger("create");并说他们解决了问题......但每次我将其添加到我的代码中时都是这样的:

$("#garageList").html(msg.d).trigger("create");

$("#garageList").html(msg.d);
$("#garageList").trigger("create");

它只会永远给我一个加载微调器。

编辑 2:

根据下面 Barnes 的建议,我已将 html 更改为:

    <%--Garage List--%>
<div data-role="page" id="garageList" data-add-back-btn="true" data-theme="a">
<div data-role='header' data-position='fixed'>
<h1>Garages</h1>
<a href='index.html' data-icon='plus' data-iconpos='notext' class='ui-btn-right' data-theme='b'></a>
</div>
<div data-role='content' id="abc">
<ul data-role='listview' id='xyz' data-filter='true' data-filter-theme='a' data-filter-placeholder='search name or account no...' data-split-icon='info' data-split-theme='a'>

/// --> new content goes here... as simply many <li> items.

</ul>
</div> <!-- /content -->
</div> <!-- /page -->

然后我尝试了(ajax成功):

            $("#xyz").empty();
$("#xyz").html(msg.d);
$("#abc").listview("refresh");
$.mobile.changePage("#garageList");

            $("#xyz").html(msg.d);
$("#xyz").listview("refresh");
$.mobile.changePage("#garageList");

这里是 msg.d 的一些示例输出:

"<li><a href='javascript:GetGarageDetails(16267)'><h3>A KETCHEN MOTOR ENGINEERS</h3><p><strong>MID LOTHIAN</strong></p></a><a href="javascript:GetFactorDetails('16267')"></a></li>

<li><a href='javascript:GetGarageDetails(16328)'><h3>G.A.AUTOS</h3><p><strong></strong></p></a><a href="javascript:GetFactorDetails('16328')"></a></li>

<li><a href='javascript:GetGarageDetails(16262)'><h3>GARRY HENDERSON MOTOR ENGINEERS</h3><p><strong>WEST LIMTON</strong></p></a><a href="javascript:GetFactorDetails('16262')"></a></li>

<li><a href='javascript:GetGarageDetails(16264)'><h3>LEADBURN GARAGE LTD</h3><p><strong>PEELBLESHIRE</strong></p></a><a href="javascript:GetFactorDetails('16264')"></a></li>

<li><a href='javascript:GetGarageDetails(16315)'><h3>LOTHIAN MOTORS</h3><p><strong></strong></p></a><a href="javascript:GetFactorDetails('16315')"></a></li>

"

和其他变体,但它仍然不想玩(微调器在刷新时永远继续)......虽然它有所改进(当我取消刷新时):

enter image description here

最佳答案

这解决了我所有的问题。

$('...').trigger('create');

您只需找到合适的元素放入选择器即可。

对我来说,这些行起到了作用:

$(document).bind('pagechange', function() {
$('.ui-page-active .ui-listview').listview('refresh');
$('.ui-page-active :jqmData(role=content)').trigger('create');
});

关于javascript - JQuery Mobile 在导航页面后丢失所有样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com