[ Zdravo_djaci @ 11.01.2006. 15:53 ] @
Jednostavno pitanje:
Moze li se preko CSS-a definisati event za neko polje forme (onClick)
[ Mystery_Men @ 11.01.2006. 17:15 ] @
u dreamveaveru (pretpostavljam da to koristis) imas paletu Behaviors (shift +f3)
obelezis polje (slika , baner , link ...nbitno sta) ides na + imas vise opcija , open browser window , show pop up meny , pop up mesage , kad mu zadas neku od ovih gore navedenih komandu u istoj paleti Behaviors u akcijama imas opcije da zadas funkcije (promene ponasanja) na primer : on over , ti mu das show pop up message , on click - ili new browser window , videcesh imas x opcija...isprobaj sve te opcije , dosta ce ti znaciti ako ih iscimash sve kako su ih neki nasi stucnjaci preveli "promene ponasanja" :))))))))))))))))))))))
[ Zdravo_djaci @ 17.01.2006. 12:15 ] @
Kod me interesuje.Radim bez ikakvih alata,osim u izuzetnim slucajevima.Interesuje me css kod za tu implementaciju ukoliko je to uopste moguce uraditi preko css-a.
Nakako da se pristupi atributima(kao sto je onClick) polja i dodeli im vrednost.
[ noviKorisnik @ 17.01.2006. 12:44 ] @
Nije u pitanju CSS. Klijent-skripting (recimo javascript) koji radi nad DOM (što bih preveo - Objektni Model DokumentA - ODMA :-)). Najlakše je hendler (kod, najčešće poziv funkcije, koji se izvršava kad se desi događaj) navesti odmah u samom elementu kao atribut ...

Code:
<input ... onClick="alert ('click');" ... />


Javi ako ovo nije dovoljno pa da nastavimo dalje.
[ jablan @ 17.01.2006. 12:47 ] @
Zanimljivo pitanje...

Vidim da postoji draft standarda, ali ne znam da li je implementirano u nekom brauzeru...

U svakom slučaju, možeš da napišeš javascript koji po nekom kriterijumu (recimo elementu pridodatoj CSS klasi) protrči kroz DOM i dodeli potrebne handlere. Na taj način sam HTML bi ti ostao čist od javascripta.

Pogledaj ovaj link, prilično je zanimljiv:
http://bennolan.com/behaviour/
[ Zdravo_djaci @ 17.01.2006. 14:32 ] @
Fora je u tome sto bih time mogao na jednostavan i brz nacin da ubacujem i izbacujem pojedine funkcionalnosti na sajtu.Konkretno se radi o helpovima koji iskacu kada se nesto desi.Ne zelim da event dodelim preko JavaScript-a.
Time bih postigao da promenu nad jednim stilom izrazim na recimo 150 polja forme.
[ jablan @ 17.01.2006. 14:41 ] @
Citat:
Zdravo_djaci: Ne zelim da event dodelim preko JavaScript-a.

Zašto? Za opis ponašanja "šta se desi kad se nešto desi" ionako koristiš javascript, a CSS služi za opis prezentacije, za opis ponašanja koristi se javascript...

Našao sam još bolji članak od koga drugog do od Petera Paula Koch-a. On, osim što ne preporučuje miksanje prezentacionog sloja i sloja ponašanja, savetuje da se za obeležavanje elemenata koji imaju pridruženu akciju koriste custom HTML atributi.

Preporučujem svakom da iščita članak, jako je dobar:

http://www.alistapart.com/articles/scripttriggers/
[ Zdravo_djaci @ 17.01.2006. 14:56 ] @
Recimo da u mojoj aplikaciji imam vise od 200 polja razlicitih formi.Kada misem predjem preko svakog polja,hocu da se nesto desi.Nakon izvesnog vremena koriscenja aplikacije od strane klijenta,taj event je potrebno izbrisati.Ukoliko bih dodelio event preko javascripta ,morao bih da obrisem event nad svih poljima(200 polja), ili da funkciju koju event poziva ostavim bez tela.Cini mi se kao mnogo elegantnije resenje da preko dodeljene css klase izbrisem event, sto bi se automatski odrazilo na sva polja.To je razlog.
Ako neko ima bolje resenje neka se oglasi.
[ noviKorisnik @ 17.01.2006. 15:00 ] @
Ne razumem šta misliš pod "ubacivanje i izbacivanje pojedinih funkcionalnosti na sajtu". Verujem da bi neki mali primer bio dovoljan. Šta se dešava sa Helpom (izeš ga, nije mi jasno u čemu je problem)?

// edit - vidim uskočila nova poruka u međuvremenu - pa da nastavim s potpitanjima ...

Da li bi odgovaralo nešto ovako ...

Imaš jednu promenljivu koja odlučuje o svemu, kada je isključena - kao da nema eventa

Pa hendler pišeš u fazonu ...
Code:
hendler = function ()
{   if (!ukljucen) return;
//  dalje normalno ...
}


Može to da bude i ime CSS klase nekog elementa, nije bitno, to ćeš svakako okidati u nekom trenutku - javascriptom :-)

[Ovu poruku je menjao noviKorisnik dana 17.01.2006. u 16:08 GMT+1]
[ jablan @ 17.01.2006. 15:09 ] @
Ovako:

Dakle, pretpostavimo da poljima dodeljuješ handlere na sledeći način, kao što savetuje čika Koh:
Code:

function initMouseovers()
{
    var nav = document.getElementById('mouseovers');
    var imgs = nav.getElementsByTagName('img');
    for (var i=0;i<imgs.length;i++)
    {
        imgs[i].onmouseover = mouseGoesOver;
        imgs[i].onmouseout = mouseGoesOut;
    }
}

(U ovom kodu on radi sa IMG tagovima, ali ideja je ista...)

Ako tebi posle određenog vremena treba da se ista stvar ne događa, šta ti fali da promeniš malo kood i uradiš nešto ovako:
Code:

var userNeedsHelp = <%= serversko određivanje da li nam treba help %>;

function initMouseovers()
{
    if (userNeedsHelp)
    {
        var nav = document.getElementById('mouseovers');
        var imgs = nav.getElementsByTagName('img');
        for (var i=0;i<imgs.length;i++)
        {
            imgs[i].onmouseover = mouseGoesOver;
            imgs[i].onmouseout = mouseGoesOut;
        }
    }
}

Razumemo li se?

//edit: nK, u ovom gradu nema mjesta za jednog od nas

[Ovu poruku je menjao jablan dana 17.01.2006. u 16:10 GMT+1]
[ noviKorisnik @ 17.01.2006. 15:18 ] @
Hm, ovo poslednje radi ili ne radi inicijaciju hendlera... initMouseovers bi trebalo da ostane kakav je i bio prvobitno, a ispitivanje userNeedsHelp treba da ide u telo funkcija mouseGoesOver i mouseGoesOut...
[ jablan @ 17.01.2006. 15:23 ] @
Citat:
noviKorisnik: Hm, ovo poslednje radi ili ne radi inicijaciju hendlera...

Da, računam da je bolje da se handler uopšte ne dodeli, nego da se uvek izvršava i preskače akcija u njemu ("moša" za brauzer). Svejedno, ideja je ista.