Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
ako nekom zatreba...

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Client-side
View previous topic :: View next topic  
Author Message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 03.12.2004 01:35    Post subject: ako nekom zatreba... Add user to your forum ignore list Reply with quote

dakle...mala javascripta koja prodje kroz sve form (bez obzira kolko formi ima na stranici) elemente s odredjeninm class nejmom i doda im evente na onfocus i onblur...ja je koristim da mi user zna na kojem je fieldu...pa evo je:
Code:

var focusCss = "textinputFocus";
var blurCss =  "textinput";
function changeOnFocus()
{     
  this.className = "textinputFocus";
}
function changeBack()
{     
  this.className = "textinput";
}
function inputHighlight(imeKlase)
{

  formeArray = document.getElementsByTagName("form");
  for(var i = 0; i < formeArray.length; i++)
  {
    elementsArray = formeArray[i];
    for(var j = 0; j < elementsArray.length; j++)
    {
     
      if(elementsArray[j].className == imeKlase)
      {
        obj = elementsArray[j];
       
       
       
        if(obj.addEventListener)
        {
          obj.addEventListener("focus", changeOnFocus, false);
          obj.addEventListener("blur", changeBack, false);
        }
        else
        {
          obj.onfocus = changeOnFocus;
          obj.onblur = changeBack;
        }         
      }
    }
  }
}

moze se pozvat na dva nacina
Code:
window.onload = function(){inputHighlight('textinput');};

ili
Code:
<body onload="inputHighlight('textinput');">


gdje je "textinput" ime css klase koja se poziva na onfocus (klasa cije je ime definirano u varijabli focusCss, u blurCss je ime css klase koja je inace na elementu)

ako netko ima ideju kako unaprijediti skriptu...samo naprijed Smile

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
zytzagoo
mi3.crew


Joined: 25 Aug 2003
Posts: 1842
Location: Zagreb, Hrvatska

PostPosted: 03.12.2004 11:11    Post subject: Add user to your forum ignore list Reply with quote

U starijim browserima ovo se raspada i puca po savovima...

Za dohvat formi na stranici postoji document.forms kolekcija koja je podrzana svuda i nema potrebe za getElementsByTagName funkcijom (koja je podrzana samo u novijim browserima).

Ako koristis DOM funkcije, pametno je provjeriti prije poziva funkcije da li je funkcija podrzana, kako ti stariji browseri ne bi bacali errore. Dakle,
Code:
if (document.getElementsByTagName) {
formeArray = document.getElementsByTagName...
}


Nadalje, elementsArray = formeArray[i] mozda radi po ovom tvom principu, ali the safest way za trcati kroz elemente forme (i sve forme na stranici) bi bio ovaj (koliko sam ja testirao)
Code:

for (i = 0; i < document.forms.length; i++) {
    frm = document.forms[i];
    eles = frm.elements;
    for (j = 0; j < eles.length; j++) {
         eles[j]...; // eles[j] predstavlja element objekt, s kojim dalje mozes vec raditi sto hoces
    }
}


Napomene:
- ne bi skodilo prije loopa provjeriti da li uopce postoje forme na stranici, da ne loopa bez razloga
- dvostruki looping u javascriptu i nije najsretnije rjesenje jer zna usporiti stvar (ovisno naravno kroz kaj loopas i kaj radis unutar loopa).

Iz osobnog iskustva znam da IE jako jako jako lose (citaj: sporo) radi sa switchanjem className-a nekog elementa - usporava se do boli, cpu usage skace nenormalno... Pogotovo ako slican princip primjenis na style-anje redaka u tablici recimo...

Ono sto bih predlozio kao mozda brze rjesenje (ne znam, nisam probao, imam temperaturu i neda mi se) je protrcati kroz sve form elemente, i ovisno o tipu elementa (type property), a ne o klasi (jer obicno ti to treba za sva text polja, ili sve textarea-e, a mozes uvest i neku exclude varijantu preko className-a ako bas trebas) attachat evente na njih i onda pokusati postaviti kroz .style property vrijednosti koje trebas za pojedine elemente (jer ce brze raditi u IE-u, i to puno brze) - naravno, neke stvari ne mozes dobiti na taj nacin (kroz .style), pa ti ne preostaje drugo doli rabiti className...

Happy javascripting Smile

_________________
[+]I[+]am[+]my[+]own[+]religion[+]
Back to top
View user's profile Send private message Visit poster's website Twitter profile
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 03.12.2004 12:11    Post subject: Add user to your forum ignore list Reply with quote

hm...razmisljao sam o tome da prema tipu elementa dodajem evente..ali mo ovo pruza vecu kontrolu
sto se ovog if-a tice...jebiga zaboravijo Embarassed
uz to tek sm se sad odlucio malo vise posvetiti javascriptu...pa et tnx na savjetima
i da...brzo ozdravljenje Wink

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
zytzagoo
mi3.crew


Joined: 25 Aug 2003
Posts: 1842
Location: Zagreb, Hrvatska

PostPosted: 04.12.2004 13:11    Post subject: Add user to your forum ignore list Reply with quote

retro_one wrote:
hm...razmisljao sam o tome da prema tipu elementa dodajem evente..ali mo ovo pruza vecu kontrolu

Slazem se. Samo htjedoh upozoriti da IE ima problema s tim ponekad...
Quote:
uz to tek sm se sad odlucio malo vise posvetiti javascriptu...pa et tnx na savjetima

np, nisam mislio rec da ne valja, nego cisto natuknuti kako bi trebalo raditi DOM based javascript
Quote:
i da...brzo ozdravljenje Wink

thx, vec mi je bolje nego jucer Smile
bit ce zbog sunca vani Smile

_________________
[+]I[+]am[+]my[+]own[+]religion[+]
Back to top
View user's profile Send private message Visit poster's website Twitter profile
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Client-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group