![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Napisalem cos takiego (opis w komentarzach):
Kod $('#right-search').focus(function() { // domyslanie ustawiona jest wartosc dla input-a (value="szukaj...") // podczas klikniecia, czyscimy jego wartosc $(this).attr('value', ''); if($(this).blur(function() { // ustawiamy wartosc po opuszczeniu input-a $(this).attr('value', 'szukaj...'); })); }); Jesli klikam w input-a to czysci jego domyslna wartosc Pytanie: Jesli po kliknieciu w intput-a, i nic nie wpisaniu, a nastepnie opuszczenie jego spowoduje wpisanie domyslnej wartosci "szukaj...", jezeli jednak cos wpiszemy i opuscimy to wstawia sie ta wartosc, a powinna zostac nowo wpisana, wiec jak to zrobic? if(opuszczamy.pusty) : ustaw domyslny tekst ? pozostaw wpisany tekst... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
wracając jeszcze do pierwszego problemu:
1) ustawiając wartość pola input należy korzystać z $('input').val() - jest szybsze 2) definiowanie ewentów w eventach nie jest dobrym pomyslem bo przykładowo: Kod <input type="text" id="search" title="Szukaj..." /> <span id="log"></span> <script> $('#search').focus(function(){ $(this).blur(function(){ $('#log').html($('#log').html()+'1<br />'); }); }); </script> wywolaj focus i blur pare razy i zobacz jakie ilosci jedynek bedzie ci zwracal - coraz wiecej! 3) sam kod który napisałeś można troche skompresować korzystając ze smaczków js i jquery Kod $('#search').val($('#search').attr('title')).bind('focus blur', function(e){ var $this = $(this), val = $this.val(), title = $this.attr('title'); $this.val(e.type=='focus' ? (val==title ? '' : val) : (val=='' ? title : val)) }); co do pytania 2. jezeli chcesz wprowadzic wiecej modyfikacji pola niz tylko kolor ( np. obramowanie, czcionka itp ) to lepiej uzyc dodawania i usuwania z elementu klass css ( addClass i removeClass ). Natomiast to o czym piszesz. Kod $('#search').focus(function(){$(this).css('color','#990000')}) .blur(function(){$(this).css('color', $(this).attr('default-color'))}) .attr('default-color',$('#search').css('color')); i powinno smigac. do kazdego elementu mozesz dodawac wlasne atrybuty, ktrore przydaja sie wlasnie np. w takich sytuacjach. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 22:12 |