Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dupli jQuery selektor

[es] :: Javascript i AJAX :: Dupli jQuery selektor

[ Pregleda: 4717 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

S A J A
Beograd

Član broj: 226539
Poruke: 1904
*.static.sbb.rs.



+421 Profil

icon Dupli jQuery selektor13.05.2016. u 07:39 - pre 95 meseci
IDE ni stalno izbacuje upozorenje kako na jednom mestu u kodu koristim dupli selektor i to me mnogo nervira. Moram to nekako da rešim ili da isključim taj vorning!

Dakle kod je sledeći:

Code:

var element = jQuery("a[id="+obj_id+"]").parent().detach();
            for (var i = 0; i < spisak_kategorija.length; i++) {
                if(jQuery("#"+spisak_kategorija[i]+" > ul").length == 0) {
                    jQuery("#"+spisak_kategorija[i]).append("<ul></ul>");
                }
                jQuery("#"+spisak_kategorija[i]+" > ul").append(element[0].outerHTML);
            }



Tu može da se vidi da se
Code:
jQuery("#"+spisak_kategorija[i]+" > ul")

zaista ponavlja dva puta.


U pitanju je treeview sa gomilom <ul> i <li> elemenata i ovo je momenat kad se neki <li> element mišem prevuče na drugu lokaciju. U tom slučaju moram prvo da proverim da li na toj novoj lokaciji postoje <ul> elementi pa da ih otvorim ako ih nema. Stvar malo komplikuje što tih "kategorija" može biti više od jedne ali to nije bitno za priču. Dakle ovaj kod radi, i to radi odlično, samo me nervira taj vorning.

Probao sam ovako i neće da radi, ne znam što:

Code:

var element = jQuery("a[id="+obj_id+"]").parent().detach();
            for (var i = 0; i < spisak_kategorija.length; i++) {
                var target = jQuery("#"+spisak_kategorija[i]+" > ul");
                if(target.length == 0) {
                    jQuery("#"+spisak_kategorija[i]).append("<ul></ul>");
                }
                target.append(element[0].outerHTML);
            }

 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Dupli jQuery selektor13.05.2016. u 08:15 - pre 95 meseci
Code (javascript):

var element = jQuery("a[id="+obj_id+"]").parent().detach();
for (var i = 0; i < spisak_kategorija.length; i++) {
    var target = jQuery("#" + spisak_kategorija[i]);
    if(target.find("> ul").length == 0) target.append("<ul></ul>");
    target.find("> ul").append(element[0].outerHTML);
}
 


Ono što si probao neće da radi zato što jQuery matchuje elemente samo u trenutku poziva a ne i posle toga.
Dakle, ako je target.length == 0 to znači da nema ul-a. Bez obzira što ga kasnije dodaš, target to ne vidi dok ne selektuješ opet.
Inače warning je u većini slučajeva na mestu, međutim u ovakvom scenariju nije pošto svakako moraš dva puta da uradiš select.

[Ovu poruku je menjao dusans dana 13.05.2016. u 09:29 GMT+1]
 
Odgovor na temu

S A J A
Beograd

Član broj: 226539
Poruke: 1904
*.static.sbb.rs.



+421 Profil

icon Re: Dupli jQuery selektor15.05.2016. u 10:27 - pre 95 meseci
Uspeo sam! Ovaj jQuery ima mnogo fora, našao sam kako da dodam selektor na selektor i sad nemam warning...

Code:

var element = jQuery("a[id="+obj_id+"]").parent().detach();
for (var i = 0; i < spisak_kategorija.length; i++) {
    var target = jQuery("#"+spisak_kategorija[i]);
    if(jQuery(">ul",target).length == 0) {
        target.append("<ul'></ul>");
    }
    jQuery(">ul",target).append(element[0].outerHTML);
}
 
Odgovor na temu

[es] :: Javascript i AJAX :: Dupli jQuery selektor

[ Pregleda: 4717 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.