
jquery po ajaxu funguje jen částečně
Ahoj, webovou stránku kde mám tabulku s filtrací a mám soubor status.js, kde mám toto:
var iResults = {};///pro jednoduchost zkráceno, pole je ale naplněné
$(function(){
...
...
...
$('tr').each(function() {
if($(this).data('aktivni') == 'A') {
if($(this).data('id') in iResults) setStatus($(this), iResults[$(this).data('id')]);
}
});
...
...
...
function setStatus(obj, status) {
console.log('set_status - ' + status);
if(iType[status][0]== undefined){
console.log('undef');
status = 'unknow_status';
}
if(status === "not_found") {
console.log('nastavuji i_clear - '+ obj.data('id'));
$(obj).addClass('i_clear');
}
if(status !== "not_found" || status === ""){
console.log('nastavuji i_warning - '+ obj.data('id'));
$(obj).addClass('i_warning');
}
//atd...
}
});
a HTML tabulka:...
<table>
...
<tr id="..." data-aktivni="..." data-id="..." data-typ="..."> ... </tr>
<tr id="..." data-aktivni="..." data-id="..." data-typ="..."> ... </tr>
<tr id="..." data-aktivni="..." data-id="..." data-typ="..."> ... </tr>
...
</table>
při normálním načtení stránky jquery projde řádky v tabulce a pokud má řádek nastaven data-aktivni="A", tak se volá funkce která na základě určitých dat nastaví class tomu konkrétnímu řádku. To funguje dobře, ale teď jsem přidal filtrování dat v tabulce přes ajax a když user provede filtraci a dojde k vykreslení vyfiltrované tabulky, tak sice jquery pracuje (console.log ve funkci setStatus vypisují do konzole info), ale třída se nenastaví. Řeším to už skoro dva dny a nemůžu přijít na to proč to tak je...zkoušel jsem už i celej js kod smazat a udělat jen toto:
$(document).ready(function () {
$('tr').addClass('test');
alert("ok");
});
ale třída se nenastaví, alert se ale vypíše. Dokonce si můžu i nechat zobrazit správný počet řádků tabulky...Když ale data vyfiltruji, a pak dám F5, tak se jquery provede v pořádku.
Nevíte co s tím? díky moc!
P.S.: používám nette, ale to je asi v tuto chvíli jedno...