我有一個可排序的列表。模板的重新渲染不允許我永久更改元素的類?
<template name="the_playlist">
{{#each main_list}}
<li id="{{index}}" class="list_element">
<div class="next_song">...</div>
<div class="destroy">...</div>
<div class="element_style">{{song_title}}</div>
</li>
{{/each}}
</template>
而這是從它打印的main_list
。
Template.the_playlist.main_list = function(){
//if ret is valid, it will have a songs member
var ret = Links.find().fetch()[0];
if (typeof ret == 'undefined'){
ret = []
}
else {
ret = Links.find().fetch()[0].songs;
}
return ret;
}
,我使用的排序插件,更重要的是其update
回調哪些更新,每次用戶改變位置的列表或一個元素被添加到列表中。
$(function() {
$("#playlist").sortable({
update: function(){
Template.list.updateList(); //MODIFIES DB CONTENTS, AND MAIN_LIST's VALUES CHANGE
}});
$("#playlist").disableSelection();
});
* 問題:如果當它的加載,僅一次一個網頁已有列表中的元素,我想補充一類皮(.addClass("hide")
)*每個next_song
元素上的當時的頁面。這個*只能在main_list改變之前工作,通過上面的Template.list.updateList
的調用,之後自動地,添加的類將消失 - 很可能是由於main_list取決於db更改而發生的重新呈現。
以下是我用來嘗試完成此操作的JQuery代碼片段。
$("#playlist li .next_song").each(function(){
$(this).addClass("hide_song");
})