Forum » Izdelava spletišč » javascript onfocus/onblur
javascript onfocus/onblur
4kik4 ::
Imam težavo pri onfocus - točneje pri spreminjanju barve roba inputa pri onfocus. Če naredim input, ki ima že v css-ju določeno barvo roba, ter ko kliknem v ta input, pokličem funkcijo onfocus, ki spremeni barvo roba inputa, dela vse ok. Če pa pred tem pokličem neko drugo js funkcijo in z njo najprej spremenim barvo inputa, potem pa, ko pokličem funkcijo onfocus, to ne dela več prav. Točneje, "onfocus" barva se pokaže za cca 0,5 sekunde, potem pa izgine... Zakaj se to dogaja?
Bolj točna obrazložitev:
imam nek input, ki ima rob črne barve. Če klikneš nanj, se s pomočjo funkcije focus_primer rob obarva belo, če klikneš ven, je spet črn (defocus_primer funkcija). Vse v redu. Če pa najprej klikneš gumb spremeni barvo, ki rob inputa spremeni v rdečo, potem se, če klikneš v input, rob samo za sekundo obarva v belo, potem pa spet nazaj v rdečo. Kot da, če preko js nastavim barvo, to potem povozi funkcijo onfocus. Kakšna ideja kako to rešiti?
PS - rešitve, kot je v cssju nastavljen focus, ne pridejo v poštev, ker to rabim za neko specifično stvar, in barva focusa ni vedno enaka...
Bolj točna obrazložitev:
imam nek input, ki ima rob črne barve. Če klikneš nanj, se s pomočjo funkcije focus_primer rob obarva belo, če klikneš ven, je spet črn (defocus_primer funkcija). Vse v redu. Če pa najprej klikneš gumb spremeni barvo, ki rob inputa spremeni v rdečo, potem se, če klikneš v input, rob samo za sekundo obarva v belo, potem pa spet nazaj v rdečo. Kot da, če preko js nastavim barvo, to potem povozi funkcijo onfocus. Kakšna ideja kako to rešiti?
PS - rešitve, kot je v cssju nastavljen focus, ne pridejo v poštev, ker to rabim za neko specifično stvar, in barva focusa ni vedno enaka...
<style> #primer { border:solid 1px #000; } </style> <input type='button' id='gumb' value='Spremeni barvo' onclick="barva_primer();" /> <input type='text' id='primer' value='' onfocus="focus_primer();" onblur="defocus_primer();" /> <script type="text/javascript"> function barva_primer(){ document.getElementById('primer').style.borderColor= 'rgb(255, 0, 0)'; } function focus_primer(){ document.getElementById('primer').style.borderColor= 'rgb(255, 255, 255)'; } function defocus_primer(){ document.getElementById('primer').style.borderColor= 'rgb(0, 0, 0)'; } </script>
- spremenilo: 4kik4 ()
AnubisVX ::
Sem prav tako preizkusil tvojo kodo, in v Firefoxu 38 in Internet explorerju 11 deluje kot mora. Probleme dela samo Crome ki vsiljuje privzeti barvo okvirja, to sem rešil da sem dodal style inputu: style="outline: none"
<input type='text' id='primer' value='' onfocus="focus_primer();" onblur="defocus_primer();" style="outline: none" />
Zgodovina sprememb…
- spremenilo: AnubisVX ()
4kik4 ::
aja :o posebej samo tega dela nisem sprobala ker je del nekega obrazca, samo mi potem ni jasno, kaj je narobe, ker tam ni nič kaj drugače... hvala vseeno, bom še drugo kodo potem pregledala...
Zgodovina sprememb…
- spremenilo: 4kik4 ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
! | Vse, kar ste si želeli vprašati o CSS, pa si niste upali. (strani: 1 2 3 4 … 23 24 25 26 )Oddelek: Izdelava spletišč | 345128 (4265) | sunniegoldie |
» | JqueryOddelek: Izdelava spletišč | 1798 (1522) | mk818764 |
» | Canvas risanje črt - beginPath()Oddelek: Izdelava spletišč | 916 (716) | marjan_h |
» | Potrebujem javascript pomočOddelek: Programiranje | 1208 (958) | no1pheeew |
» | Internet strani kot slideshowOddelek: Izdelava spletišč | 2109 (1860) | sverde21 |