Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- GoodSpeed: A RAMválság és annak lehetséges hatásai
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- Mr Dini: Mindent a StreamSharkról!
- Brogyi: CTEK akkumulátor töltő és másolatai
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Szólánc.
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
vakondka
#2038
üzenetére
Nagyon favágó megoldással:
http://jsfiddle.net/Sk8erPeter/P8dJR/15/
Amit lehet, jobb megoldani sima CSS-sel (pl. background-color a hoverre, meg csak osztályok hozzáadása/elvétele, így nem a JS-kódba van bedrótozva a megjelenítés!).

-
Sk8erPeter
nagyúr
válasz
vakondka
#811
üzenetére
Ez pont azt a problémát oldaná meg.
"Kreál" egy hashchange eventet, amire aztán úgy iratkozol fel a különböző függvényekkel, ahogy csak akarsz. Szóval martonx kommentje jogos, legyen hash mindenképp AJAX-ozás esetén (amennyiben oldalakat töltögetsz be adott divbe, nálad épp ez a helyzet), így könyvjelzőzhető is.
A hash akár lehet a tartalom URL-je is. Jó esetben ezek az AJAX-szal betöltött oldalak elérhetők AJAX használata nélkül is, tehát pl.:
http://example.com/foo/bar#!/some/blabla
ÉS
http://example.com/some/blabla
is működik.
Persze ez nagyon igényfüggő, de szerintem kiindulópontnak teljesen jó. -
Sk8erPeter
nagyúr
válasz
vakondka
#701
üzenetére
Itt azt írtad, hogy van .on() függvényhívás, és ezen keresztül töltöd be a megfelelő tartalmakat:
$("body").on("click", "a[href*='-c-'], a[href*='-p-'], a[href*='extra_info_pages.php'], a[href*='create_account.php']", function(e) {
var a_href = $(this).attr('href');
var content = $('#column_content');
e.preventDefault();
content.fadeToggle();
content.load(a_href +' #column_content');
content.fadeToggle();
//return false;
});Feltételezem, ebben az esetben azért kell neked az .on(), mert dinamikusan létrehozott elemekre való click-eseményekre kell rákötnöd az AJAX-os betöltést, vagyis a .load() használatát.
Na, ebben a kódban lehetne a .load() után az a függvényhívás, amit a linkelt demóban createBubbles()-nek hívtam - de a lényeg, hogy az, ami "létrehozza" ezeket a "buborékokat" úgy, hogy az adott elemek mouseover és mouseout eseményére köt bizonyos megjelenítésbeli dolgokat.De ha nem .on()-nal oldanád meg, hanem sima .click()-en belüli függvénnyel, annál is ugyanez lenne a jó módszer, hogy közvetlenül azutánra pakolod a stílus átalakítására szolgáló függvény hívását (tehát ennek a buboréknak a megjelenítését), ahol meghívod az AJAX-os betöltésre szolgáló függvényt.
Tehát pl. a fenti kódodba belepakolva azt a függvényt:
$("body").on("click", "a[href*='-c-'], a[href*='-p-'], a[href*='extra_info_pages.php'], a[href*='create_account.php']", function(e) {
var a_href = $(this).attr('href');
var content = $('#column_content');
content.fadeToggle();
// itt egy callback lesz a buborék létrehozása
content.load(a_href +' #column_content', function(){
createBubbles();
});
content.fadeToggle();
e.preventDefault();
//return false;
});Most itt úgy oldottam meg, hogy direkt a load() megtörténte utáni callback-függvényként hívom meg a createBubbles()-t.
-
Karma
félisten
válasz
vakondka
#698
üzenetére
Nem néztem rá a kódra (a telefonnal azért nem felüdülés programozni
), de ha egy plugint akarsz meghívni minden dinamikusan létrehozott elemre, akkor a legegyszerűbb a hozzáadás előtt vagy tájékán megcsinálni, amikor egyértelmű referenciád van az újonnan kreált elemekre. -
Sk8erPeter
nagyúr
válasz
vakondka
#698
üzenetére
Hát ez is tulajdonképpen dinamikusan betöltött tartalom.
Abban az értelemben, hogy klónozom az előzőt, és "dinamikusan" hozzáadom a DOM-hoz.
Ahol van az .on() függvényhívásod, oda pakold bele az itt látható createBubbles()-t is!
(Egyébként szólok előre, hogy ha esetleg ezt alkalmazod, akkor a console.log-ot kommentezd ki éles változatnál, mert Internet Explorer szépen meghal tőle, amikor nincs megnyitva a későbbiekben már meglévő fejlesztőpanel.) -
Sk8erPeter
nagyúr
válasz
vakondka
#696
üzenetére
Ez alapján készítettem neked egy példát az általad mutatott tooltip-szerűséggel:
http://jsfiddle.net/Sk8erPeter/NmH9X/Létrehozás után egyszerűen lefuttatok egy függvényt, ami létrehozza ezt a buborékot azokra az elemekre, amelyeknél még nincs.
-
Sk8erPeter
nagyúr
válasz
vakondka
#693
üzenetére
Teljesítményben rosszabb, mert az egész documenthez köti az evente(ke)t, míg a későbbi .delegate(), illetve .on() már támogatja a selectorokkal történő "szűkítést", így hatékonyabb lehet.
Ezt a cikket egyébként mindenképp érdemes elolvasni, ha érdekelnek a részletek:
Differences Between jQuery .bind() vs .live() vs .delegate() vs .on()===
(#694) Karma : jaja, vágom.
Amúgy szerintem ez jó is, mert tulajdonképpen nehéz lenne ennél egyszerűbb szintaxist kitalálni. -
Karma
félisten
válasz
vakondka
#693
üzenetére
Nemrég vitáztunk róla, ha a "live" szóra rákeresel a topikban, láthatod.

Egyébként a .live() doksijának első mondata:
"As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers. Users of older versions of jQuery should use .delegate() in preference to .live()."
(#690) Sk8erPeter: (erre akartam már reagálni csak elmaradt) az egész jQuery selector szintaxis a CSS-ből jön
Beleértve a *= operátort, legalábbis értelmesebb böngészőkben működik 
-
Sk8erPeter
nagyúr
válasz
vakondka
#688
üzenetére
Nincs mit!

A legegyszerűbb ilyen esetben, ha simán vesszővel elválasztod a selectorokat:$("a[href*='-c-'], a[href*='-p-']").click(function(e) {
........
}demo: http://jsfiddle.net/Sk8erPeter/wFDhw/
Az is jól működik, amit Karma írt, az .add() függvény felhasználásával:
demo: http://jsfiddle.net/Sk8erPeter/wFDhw/1/
Ízlés kérdése, de én a vesszővel elválasztást preferálom, amennyiben van rá mód, így nagyon jól átlátható, és ugyanúgy tudom használni, mint a CSS-selectorokat (onnan származik ez a vesszővel elválasztós móka). Meg elkerülök egy plusz függvényt.

-
Sk8erPeter
nagyúr
Új hozzászólás Aktív témák
- LG UltraGear 38GN950P-B Monitor! 38" 3840x1600 / 1ms / 160Hz / G-Sync / FreeSync! BeszámítOK
- Zenbook 15 UM3504DA 15.6" 3K OLED Ryzen 7 7735U 32GB 1TB NVMe IR kam gar
- Samsung Galaxy A35 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A33 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A52s 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone i9 14900KF 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
- Azonnali készpénzes Intel i3 i5 i7 i9 12/13/14 gen processzor felvásárlás személyesen / csomagküldés
- KIÁRUSÍTÁS - HP Elite / ZBook Thunderbolt 3 Dock (akár 2x4K felbontás)
- HIBÁTLAN iPhone 12 Mini 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3644, 100% Akksi
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

"Kreál" egy hashchange eventet, amire aztán úgy iratkozol fel a különböző függvényekkel, ahogy csak akarsz. Szóval martonx kommentje jogos, legyen hash mindenképp AJAX-ozás esetén (amennyiben oldalakat töltögetsz be adott divbe, nálad épp ez a helyzet), így könyvjelzőzhető is.
![;]](http://cdn.rios.hu/dl/s/v1.gif)
), de ha egy plugint akarsz meghívni minden dinamikusan létrehozott elemre, akkor a legegyszerűbb a hozzáadás előtt vagy tájékán megcsinálni, amikor egyértelmű referenciád van az újonnan kreált elemekre.
Abban az értelemben, hogy klónozom az előzőt, és "dinamikusan" hozzáadom a DOM-hoz.
