无法在运行时更改attr“href”

时间:2013-10-28 16:40:38

标签: jquery listview mobile kendo-ui

我遇到了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}&nbsp;${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}&nbsp;${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>

,为什么它不起作用

0 个答案:

没有答案