Autor Zpráva
kujeba
Profil
Mám javascript, ktery mi překresluje checkboxy a selectboxy (kvuli jednotné grafice ve všech prohlížečích).

Pro multiupload obrázků používám upravený swfupload, který mi uloží obrázek na server, pomocí ajaxu ho zpracuje (vytvoří náhledy apod...) a následně přidá do html kódu blok s náhledem uploadnutého obrázku a s formulářovými prvky (checkboxy a selectboxy). Bohužel, na takto přidaný kód už není aplikován javascript, který překresluje checkboxy a selectboxy. Můžete mi, prosím, poradit jak tento problém vyřešit?



funkce, ktera vykreslí blok s náhledem a formulářovými prvky:

hodnota "filename" je název uploadnutého obrázku

function addFileToList(filename){
    var dotPosition = parseInt(filename.indexOf('.'), 10)+parseInt("1", 10);
    var suffix = filename.substr(dotPosition);
    var name = $('.FileToList:last').attr('id');
    var description;
    var supps;
    var c = 0;
    var i;
    if(name){
        c = name.substring(3);
        i = parseInt(c,10)+parseInt("1",10);
    }
    
    if(i){
        name = 'filename['+i+']';
        description = 'description['+i+']';
    }else{
        i = '0';
        name = 'filename[0]';
        description = 'description[0]';
    }

    switch(suffix){
    case 'jpg':
    case 'png':
    case 'gif':
        var d;
        var text1 = $('#text1').val();
        var text2 = $('#text2').val();
        var subtext;
        var id_position;
        var show_description_text = $('#show_description_text').val();
        var count_position = $('#count_position').val();

        supps = '<div class="supps">\
                <p>'+text1+'</p>';
        for(d = 1; d <= count_position; d++){
            subtext = $('#name_position'+d).val();
            id_position = $('#id_position'+d).val();
            supps = supps +
            '<div class="checkbox-wrap">\
                <input type="radio" id="supp'+i+d+'" name="id_position['+i+']" value="'+id_position+'" />\
            </div>\
            <label for="supp'+i+d+'">'+subtext+'</label>\
            ';
        }
        supps = supps +
            '</div>';

        supps = supps +
            '<div class="supps">\
            <p>'+text2+'</p>\
            <div class="checkbox-wrap">\
                <input type="checkbox" id="supp'+d+'" name="show_description" />\
            </div>\
            <label for="supp'+d+'">'+show_description_text+'</label>\
            </div>';
    break;
    default:

    break;
    }

    var data = '<div class="FileToList" id="ftl'+i+'">\
            <div>\
            <img src="/photo/small/'+filename+'" alt="" />\
            <textarea name="'+description+'" class="mceSimple" />\
            <span class="FileOutList" id="fol'+i+'"><img src="/aktualizace/img/cancelbutton.gif" alt="Delete"/></span>\
            </div>\
            '+supps+'\
            <div class="clear"></div>\
        </div>';
    var hiddenData = '<input id="fhl'+i+'" type="hidden" name="'+name+'" value="'+filename+'" />';
    $('#filelist').append(data);
    $('#hiddenInput').append(hiddenData);
}
Keeehi
Profil
kujeba:
no nejspíš to bude proto, že ten script po překreslení formulářových prvků už proběhl a tyto byly vytvořeny až potom
-> znovu spustit script na překreslení těch prvků
kujeba
Profil
Keeehi:
Nojo, jenže v tom je problém. Tohle já neumím a ani pomocí googlu jsem nenašel způsob, jak znovu spustit patričný script. Poradí někdo?
František
Profil *
Mám podobný problém. Nahraju ajaxem stránku a v té stránce mám dalši ajax (vč. js skriptu) a nefunguje to. Když dám "skript" na původní stránku, tak ten vložený ajax v ajaxu funguje... Což ale není možné, protože původní stránka se nijak nedoví, jaký ajax by měla načíst...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0