Witam
I znowu mam pewnie dziecinny problem z JS.
Paginacja na ajaxie, wyniki wyświetlam w tabeli.
Po kliknięciu na komórkę chcę dodać wybrany rekord do listy powyżej tabeli.
I tu pojawia się problem, z każdej strony mogę dodawać i usuwać tylko ostatni element.
Kod
GroupEditor.prototype.populatePageTableRows = function(pages) {
var tbody = this.pagesTable.find('tbody'),
that = this;
tbody.find('tr').remove();
for(var key in pages) {
if(pages.hasOwnProperty(key)) {
var tr = $('<tr>'),
page = pages[key];
tr.append($('<td/>')
.text(page.title))
.click(function() {
if (isPageActive(page)) {
removeActivePage(page, tr);
} else {
addActivePage(page, tr);
}
})
);
if (isPageActive(pages[key])) {
markRow(tr);
}
tbody.append(tr);
}
}
function removeActivePage(page, tr) {
unmarkRow(tr);;
that.activePages.find('#page' + page.id).parent().remove();
}
function addActivePage(page, tr) {
markRow(tr);
var id = page.id;
that.activePages.find('ul').append(
$('<li/>')
.append($('<label/>')
.attr('for','page'+id)
.text(page.title)
)
.append(
$('<input/>')
.attr({
'type' : 'checkbox',
'name' : 'group[pages]',
'value' : id,
'checked' : true,
'id' : 'page'+id
})
)
)
}
function isPageActive(page) {
return that.activePages.hasElement('#page'+page.id);
}
function markRow(tr) {
tr.css({'background-color' : '#d5d5d5'});
}
function unmarkRow(tr) {
tr.css({'background-color' : '#f1f1f1'});
}javascript:QuickEdit('id634675',1)
};
Wszelkie uwagi bardzo mile widziane.
[EDIT] Ostatecznie zadziałało nie dodawania zdarzenia w for, tylko poźniej w standardowy 'jQuerowy' sposób.