我遇到了Kendo Mobile UI应用程序的问题(使用Icenium)。
我正在使用列表视图,我想在运行时更改网址。其背后的想法是:每次用户点击某个项目时,它都会通过动态更改css类来更改项目的颜色。我还必须更改项目指向的内部网址,以反映其当前状态。
这里是html:
<!--Attendances-->
<div id="attendances-view" data-role="view" style="display:none;"
data-model="app.views.attendances.attendancesModel"
data-before-show="app.views.attendances.beforeShow"
data-init="app.views.attendances.init"
data-show="app.views.attendances.show"
data-title="Attendances"
data-layout="tabstrip-layout">
<h3 data-bind="text: info"></h3>
<ul id="attendances-data"></ul>
</div>
<!-- attendances view (kendo template) -->
<script id="attendances-data-template" type="text/x-kendo-template">
<a id="attendance-${data.idPresence}" class="fiftyone-attendances-${data.etat}" href="\#attendances-view?status=switch&idPresence=${data.idPresence}&etat=${data.etat}">${data.mbLastName} ${data.mbFirstName}</a>
</script>
这里是js:
(在data-show调用的show方法上): [...] $( '#考勤 - ' + idPresence).addClass(的NewClass); $( '#出勤 - ' + idPresence).addClass( “KM-列表视图链路”);
var query = "\\#attendances-view?status=switch&idPresence="+idPresence+"&etat="+newEtat;
$('#attendance-'+idPresence).attr("href", query);
[...]
这里的'查询'变量并不重要,它无论我给出什么都不起作用,我可以写“米老鼠”它不起作用。奇怪的是,两个“addClass”运行良好,但.attr(...)似乎绝对没有。
我也试过.prop('href',query)和.attr({href:query,})无济于事。动态创建的ID工作正常,因为选择器在执行两个addClass时工作正常,所以我真的不明白。它是否仅仅被listview的模板覆盖(我不明白为什么,但仍然......)?
提前致谢 -G。
编辑:作为补充,我在beforeShow和init事件中什么都不做
Edit2:找到了一个解决方法(发布后... ...大声笑......)
我在“<span>
:
<a>
个ID
<span id="attendance-${data.idPresence}" ><a class="fiftyone-attendances-${data.etat} km-listview-link" href="\#attendances-view?status=switch&idPresence=${data.idPresence}&etat=${data.etat}">${data.mbLastName} ${data.mbFirstName}</a> </span>
并且改变了js以实际工作:
$('#attendance-'+idPresence+' a').addClass(newClass);
$('#attendance-'+idPresence+' a').addClass("km-listview-link");
var query = "\#attendances-view?status=switch&idPresence="+idPresence+"&etat="+newEtat;
$('#attendance-'+idPresence+' a').attr("href", query);
有效。但是,如果有人能告诉我,我会很高兴
1)如果以这种方式做事是个好主意
2)没有<span>