Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz ntomka #734 üzenetére

    Wow, ez gyors volt. :K
    Nehéz így fejlesztőként használni?

    Bocs, hogy ide dobom most gyorsan ezt a korrekcióra való javaslatot, de így egyszerűbb volt hirtelen:

    [link]

    $('.face b, .arc b').each(function(i, v) {
    var l = $('<a>').attr({
    href: 'http://hardverapro.hu/aprok/keres.php?suser=' + $(v).html().trim(),
    title: 'Apróhirdetései',
    target: '_blank'
    }).html('Apróhirdetései');
    $('<div>').appendTo($(v).parent('div')).append(l);
    });

    Ezt lehetne egyszerűsíteni. A változónevek miért nem beszédesebbek egy kicsit? :) A v, l, és hasonló változónevek hosszabb fejlesztés után rendkívül idegesítőek, főleg, ha mások is becsatlakoznak abba segítőként. :) Az embernek a kód további érdemi részeinek átnézése nélkül fogalma nincs, miről van szó, amikor lát egy ilyet: .append(l) - honnan kéne tudni, mi az az l, ha nem nézed vissza? :) (pl. ha a definiálás és a tényleges hozzáadás közé kerülne mondjuk jópár sor, akkor már különösen zavaró lenne)
    Az URL-hez való névhozzáadásnál a .html() helyett indokoltabb lenne a .text()-et használni, ez levágja az esetleges HTML-tageket (pl. ha feltételezzük, hogy valamilyen oknál fogva változtatnak ezen, és belekerül mondjuk egy <span> is, akkor a .html()-es megoldással rögtön borulna ez a dolog, nem működne a link, mert belekerülne a <span> is)
    Kétszer használod a $(v)-t, ez szerintem kétszeri kotorászás, plusz idő, tehát érdemes lenne tárolni egy változóban.
    Az .attr() használata itt nem is túl indokolt, inkább eleve a megadott attribútumokkal kellene létrehozni az elemet, meg is mutatom, mire gondolok:

    $('.face b, .arc b').each(function (usernamesIndex, usernamesValue) {
    var $usernameElement = $(usernamesValue),
    username = $(usernamesValue).text().trim(),
    adsText = 'Apróhirdetései',
    linkToAds = $('<a>', {
    href: 'http://hardverapro.hu/aprok/keres.php?suser=' + username,
    title: adsText,
    html: adsText,
    target: '_blank'
    });
    $('<div>').appendTo($usernameElement.parent('div')).append(linkToAds);
    });​

    [ Szerkesztve ]

    Sk8erPeter

Új hozzászólás Aktív témák