Hirdetés
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Milyen okostelefont vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Google Pixel topik
- iPhone topik
- Fotók, videók mobillal
- Yettel topik
- Kompatibilis lett az Android Quick Share és az Apple AirDrop
- Android szakmai topik
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
-
Mobilarena
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
wolandino
#2399
üzenetére
Hmm, mondjuk sztem azért, mert előbb így írtam:
$(":input").on("click", function () {
// ...
});
viszont ide nem írtam selectort, az utóbbiba már igen:
jQuery("body").on("click", ":input", function () {
// ...
});Ja, amúgy jótanács, amivel időt spórolhatsz: ha van egy új kód, amit előbb tesztelni akarsz, úgy, hogy egyből lásd a hatását (egyáltalán jó-e, amit csináltál), anélkül, hogy fájlba kéne mentegetni, majd frissítgetni (olykor Ctrl+F5 nyomogatásával, hogy ne cache-ből kotorja elő), akkor pl. Chrome-ban nyomj egy F12-t vagy Ctrl+Shift+I-t, aztán kattints a konzol fülre, és ide egyből másold be az új kódodat, majd nyomj egy Entert, és itt általában egyből látható, működik-e a kód, vagy van valami szintaktikai vagy egyéb hiba. Ha itt írod meg a többsoros kódot (én is szoktam), akkor Shift+Enterrel tudsz sortörést belerakni, a normál Enter egyből elküldi.
-
Sk8erPeter
nagyúr
válasz
wolandino
#2397
üzenetére
Szívesen!
.on()-nal akkor nyilván azért nem működött, mert az csak újabb jQuery-ben van; .delegate()-tel meg gondolom azért nem, mert nem nézted meg rendesen a meghívásának módját.
Elég hülye módon fel van cserélve a .live()-hoz képest:tehát ez:
jQuery("body").on("click", ":input", function () {
// ...
});megfelel ennek:
jQuery("body").delegate(":input", "click", function () {
// ...
});.live()-val:
jQuery("body").live( "click", ":input", function () {
// ...
}); -
Sk8erPeter
nagyúr
válasz
wolandino
#2394
üzenetére
Akkor próbáld meg azt, hogy így átírod:
$(":input").click(function () {
// ...
}HELYETT
$(":input").on("click", function () {
// ...
});Fontos: az .on() függvény a jQuery 1.7-es verziójától él.
Ez jól összefoglalja a változásokat:
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+ -
Sk8erPeter
nagyúr
válasz
wolandino
#2392
üzenetére
Akkor fordulhat elő ilyen, ha
1.) több HTML-elemnek ugyanaz az id-je (kerülendő)
2.) dinamikusan hozzáadott elemek id-jára hivatkozva kötsz az adott elemre eseménykezelőket, ilyenre való az .on() függvény (korábban .delegate(), .live(); ennek lényege, hogy jövőben várhatóan létrejövő elemekre is tudsz eseménykezelőket kötni).
3.) szintaktikai hiba
4.) ..... stb.Ha konkretizálod a példát úgy, hogy egy leegyszerűsített változatot felraksz jsfiddle-re, konkrétabban is fogunk tudni segíteni.
Új hozzászólás Aktív témák
- Futás, futópályák
- Formula-1
- Hővezető paszták
- Amlogic S905, S912 processzoros készülékek
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Kerékpárosok, bringások ide!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- One otthoni szolgáltatások (TV, internet, telefon)
- Azonnali informatikai kérdések órája
- Milyen okostelefont vegyek?
- További aktív témák...
- Apple iPhone 13 Pro Max / 128GB / Kártyafüggetlen / 12Hó Garancia / akku: 100%
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! Apple MacBook Pro 16 M4 Pro 48GB RAM 4TB SSD macbook garanciával hibátlan működéssel
- Apple iPhone XR / 128GB / Kártyafüggetlen / 12Hó Garancia / 95% Akku
- Lenovo E490 Notebook i7/16/500
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Elég hülye módon fel van cserélve a .live()-hoz képest:

