JQM - 将图像动态添加到可折叠 header
JQM - Add image to collapsible header dynamically
我有一个星期几的可折叠集合,其中用户的活动表示为 collapsible-set 中的列表视图。
<div data-role="collapsible-set" id="calCol" data-collapsed-icon="arrow-d" data-collapsed="true" data-iconpos="right">
<div data-role="collapsible">
<h1 id="day1Header">Sunday<img src="#" /></h1>
<ul id="day1" data-role="listview">
</ul>
</div>
<div data-role="collapsible">
<h1>Monday</h1>
<ul id="day2" data-role="listview">
</ul>
</div>
...
我从我的数据库中获取用户活动的所有内容,所以我像这样动态插入我的所有内容:
var userActivitiesObj = JSON.parse(data.d);
for (var i = 0; i < userActivitiesObj.length; i++) {
for (var j = 0; j < userActivitiesObj[i].time.length; j++) {
var listItem = "<li style='background-color: " + userActivitiesObj[i].hobColor + ";'>";
listItem += userActivitiesObj[i].actName + " - " + userActivitiesObj[i].actAddress + " - ";
listItem += userActivitiesObj[i].time[j].startTime + "-" + userActivitiesObj[i].time[j].endTime;
listItem += " (" + userActivitiesObj[i].time[j].audiance + ")</li>";
$("#day" + userActivitiesObj[i].time[j].day).append(listItem);
$("#day" + userActivitiesObj[i].time[j].day).listview("refresh");
}
}
我要做的最后一件事是将每个 activity 的图像添加到那天的 header。
当我在 html 尝试这样做时,它完美地工作:
<h1 id="day1Header">Sunday<img src="#" /></h1>
但是当尝试动态执行时,它无法正常工作。
那就是我尝试做的事情:
$("#day1Header").html($("#day1Header").html()+"<img src='#'");
和:
$("#day1Header").append("<img src='#'");
我知道我在这里缺少类似 .list("refresh") 函数的东西,但我不知道那是什么。
jQuery Mobile 在 header 中添加了带有 class ui-collapsible-heading-toggle
的锚标记,并将可折叠标题放在那里。所以你可以删除以前的图像并像这样附加新图像:
$("#day1Header .ui-collapsible-heading-toggle img").remove();
$("#day1Header .ui-collapsible-heading-toggle").append('<img src="https://placeimg.com/44/22/tech" />');
DEMO
我有一个星期几的可折叠集合,其中用户的活动表示为 collapsible-set 中的列表视图。
<div data-role="collapsible-set" id="calCol" data-collapsed-icon="arrow-d" data-collapsed="true" data-iconpos="right">
<div data-role="collapsible">
<h1 id="day1Header">Sunday<img src="#" /></h1>
<ul id="day1" data-role="listview">
</ul>
</div>
<div data-role="collapsible">
<h1>Monday</h1>
<ul id="day2" data-role="listview">
</ul>
</div>
...
我从我的数据库中获取用户活动的所有内容,所以我像这样动态插入我的所有内容:
var userActivitiesObj = JSON.parse(data.d);
for (var i = 0; i < userActivitiesObj.length; i++) {
for (var j = 0; j < userActivitiesObj[i].time.length; j++) {
var listItem = "<li style='background-color: " + userActivitiesObj[i].hobColor + ";'>";
listItem += userActivitiesObj[i].actName + " - " + userActivitiesObj[i].actAddress + " - ";
listItem += userActivitiesObj[i].time[j].startTime + "-" + userActivitiesObj[i].time[j].endTime;
listItem += " (" + userActivitiesObj[i].time[j].audiance + ")</li>";
$("#day" + userActivitiesObj[i].time[j].day).append(listItem);
$("#day" + userActivitiesObj[i].time[j].day).listview("refresh");
}
}
我要做的最后一件事是将每个 activity 的图像添加到那天的 header。 当我在 html 尝试这样做时,它完美地工作:
<h1 id="day1Header">Sunday<img src="#" /></h1>
但是当尝试动态执行时,它无法正常工作。 那就是我尝试做的事情:
$("#day1Header").html($("#day1Header").html()+"<img src='#'");
和:
$("#day1Header").append("<img src='#'");
我知道我在这里缺少类似 .list("refresh") 函数的东西,但我不知道那是什么。
jQuery Mobile 在 header 中添加了带有 class ui-collapsible-heading-toggle
的锚标记,并将可折叠标题放在那里。所以你可以删除以前的图像并像这样附加新图像:
$("#day1Header .ui-collapsible-heading-toggle img").remove();
$("#day1Header .ui-collapsible-heading-toggle").append('<img src="https://placeimg.com/44/22/tech" />');