Autor Zpráva
Monkeys
Profil *
Vyrobil som si dynamicky zoznam pridavania prvkov cez jQuery.
Vsetko funguje ako ma ale trapi ma skor opakovanie kodu vo funkciach. Nieco podobne som tu nedavno riesil v PHP.

Nebudem sem davat cely ajax ale len poslednu cast success.

success: function(data){
//ak je pocet li v yoyname mensi ako 4;
if(dlzkaUl.length < 4)
{
addLi();
}
else
{
addUl();
}//end if
}//end data sucess

function addLi()
{
lastUl.append('<li class="addCategoryColor">' + box + '</li>');
setTimeout(function(){
$(".volitelnePoliaBox ul li:last").removeClass("addCategoryColor");            
}, time);
catInp.val("");
}//end li func


function addUl()
{
lastUl.parent().append('<ul><li class="addCategoryColor">' + box + '</li></ul>');
setTimeout(function(){
$(".volitelnePoliaBox ul li:last").removeClass("addCategoryColor");            
}, time);
catInp.val("");
}

Kod robi to ze ak je pocet inputov v zozname vacsi ako 4 tak vytvori novy zoznam <ul> inac pridava do posledneho.
Ide mi o tie dve posledne funkcie lisia sa len v slovicku parent() inac robia presne to iste. Chcel by som to vyriesit jednou spolocnou funkciou.
Ako by sa to dalo ?

vdaka
M.


Podarilo sa mi to zjednodusit :)

function add(par, ul)
{
par = (par == true) ? lastUl : lastUl.parent();
ul = (ul == false) ? Array("","") : Array("<ul>", "</ul>");

par.append(ul[0] + '<li class="addCategoryColor">' + box + '</li>' + ul[1]);
setTimeout(function(){
$(".volitelnePoliaBox ul li:last").removeClass("addCategoryColor");            
}, time);
catInp.val("");
}//end func

a v ajaxe volam striedavo
add(false, true);

M.
Someone
Profil
Si to hoď do jedné funkce:
success: function(data){
    addRecord(dlzkaUl.length);
}

function addRecord(dlzka) {
    if(dlzka < 4) {
        lastUl.append('<li class="addCategoryColor">' + box + '</li>');
    } else {
        lastUl.parent().append('<ul><li class="addCategoryColor">' + box + '</li></ul>');
    }
    setTimeout(function(){
        $(".volitelnePoliaBox ul li:last").removeClass("addCategoryColor");
    },time);
    catInp.val("");
}

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: