DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   Dinamicko menjanje css za pseudo klasu (http://www.devprotalk.com/showthread.php?t=7271)

Damjan 16. 03. 2009. 16:23

Dinamicko menjanje css za pseudo klasu
 
Pozdrav!

Nadam se da ne smaram pitanjem koje je vec obradjeno..
Interesuje me koji je najbolji nacin za dinamicko menjanje stila za recimo a:hover?

Koristim jQuery, i napravio sam to sa $('style').html('a:hover {color: #f00;}');
Radi super u svim browserima (ff, o, s, c) osim u IE (mrzim ga..).

Kako to postici u IE sa jQuery-jem (ili core JS)?

Hvala ;)

Milos Vukotic 16. 03. 2009. 16:34

Možda ovako:
Definišeš u CSS-u klasu npr.
hover1 a:hover {color: #f00;}

Pa onda, ako ti elementi kojima se mijenja ponašanje pri a:hover trenutno imaju npr. klasu "someClass":
$(".someClass").addClass("hover1");

Imaš još i funkcije removeClass i toggleClass.

Damjan 16. 03. 2009. 16:54

Hvala na brzom odgovoru, ali to resenje nije u skladu sa zahtevima.
Potrebno je menjati na 100 nacina i bezbroj puta razlicite elemente (izmedju ostalih i a:hover) na stranici.
Radi se profile editoru sa neki social network site.
Prvo resenje koje sam uradio jeste preko $(selector).css(property,value); ali ne moze se na taj nacin menjati pseudo klasa...

bluesman 16. 03. 2009. 16:54

Imaš i hover funkciju u jQuery:

Kôd:

$(element).hover (
      function () {
        // sta se desava na mouse over
      },
      function () {
        // sta se desava na mouse out
      }
);

Edit, sad sam video tvoju novu poruku... mozes recimo ovako:

Kôd:

$(element).hover (
      function () {
        $(this).addClass ('superFancyHover');
      },
      function () {
        $(this).removeClass ('superFancyHover');
      }
);


Damjan 16. 03. 2009. 19:57

Uhh, izgleda da nisam bio jasan.

Ne treba mi menjanje klase za neki element, nego css-a (za odredjene property-je bilo koji value da se postavi).
Kontrole za menjanje sam napravio, ali problem je dodeljivanje novog css-a preko <style> elementa u IE, dok u svim ostalim browserima radi odlicno.

Da li postoji nacin da se pomocu jQuery-ja dinamicki menja sadrzaj ovog elementa (style u head-u)??
$('style').html() je super ali ne radi u ie...

Milos Vukotic 16. 03. 2009. 20:05

Pa lijepo ti govorimo, te property-je izdvojis u posebnu klasu. :)
Napravis jednu osnovnu klasu i 10 razlicitih malih klasa, svaka sa specificnim properties, i onda samo toj osnovnoj dodajes/oduzimas ove manje klase, a samim tim mijenjas i CSS atribute elementa.
Vjerujem da znas, ali ne skodi nista da kazem: Element moze imati vise od jedne klase. Bre. :)

bluesman 16. 03. 2009. 21:50

Mislim da on to neće na ovaj način, iz nekog razloga je odlučio da dinamički piše STYLE tag, iskreno ne razumem zašto tako i koji bi razlog trebalo da postoji da se odlučim da uradim tako. Možda bih, kada bih to razumeo, mogao i da pomognem.

Damjan 16. 03. 2009. 23:24

Prvo hvala na angazovanju :)

Ne znam da li ste ikada imali priliku da koristite neki profile editor, npr za myspace.. Pravim tako nesto...
Treba dinamicki menjati izgled stranice i voditi "evidenciju" o izmenama.
Sve sam to napravio i odlicno radi osim u ie (postajem dosadan sa ovim za ie).

Ne vidim kako bi mi pomoglo da dodelim nekom elementu i sto klasa ako ta klasa nema bas onu nijansu crvene koju korisnik zeli da element ima.
Zato sam prvo napravio izmenu pomocu komande (koju poziva color picker): $('a').css('color','#c00');
Ali na taj nacin nisam mogao menjati osobine pseudo klase. Pa sam otkrio da insertovanje css koda u style u zaglavlju cini sve sto mi treba. Osim sto to IE ne dozvoljava.

Vase resenje bi bilo odlicno ako bih ja mogao menjati vrednosti css property-ja neke klase, npr boju koju ta klasa donosi.
Ali koliko znam to nije moguce (moze da se menja ili inline css kod ili dodaje i sklanja neka klasa/e sa elementa).
Tj ja sam bas to uradio tako sto uletim sa reg exp u <style> i tamo promenim css kod za klasu (tj selector).

Jos jednom: menja se odredjeni element, odredjena osobina sa bilo kojom vrednoscu i bilo koji broj puta. Dok korisnik ne ubode boju kojom zeli da mu bude predstavljen link (link je jedna od 150 stvari sto se menja na stranici, ali jedino on ima pseudo klasu sto pravi problem sa menjanjem inline css koda).

Nadam se da sam vam malo bolje priblizio potrebe i problem :)


Vreme je GMT +2. Trenutno vreme je 09:01.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.