- Samsung Galaxy S21 FE 5G - utóirat
- Termékoldal is van a Galaxy Watch FE-hez
- Bivalyerős lett a Poco F6 és F6 Pro
- Bemutatkozott a Moto G32 4G
- Xiaomi 13 - felnőni nehéz
- Google Pixel 6/7/8 topik
- Huawei P30 Pro - teletalálat
- Samsung Galaxy S23 Ultra - non plus ultra
- Nubia Neo 5G - olcsó játék
- iPhone topik
Hirdetés
-
Frissült az IQOO tabletkínálata
ma Az új IQOO Pad2-t és Pad2 Pro-t egyelőre nem láttuk más brand kínálatában, persze ettől még felbukkanhatnak majd Oppo vagy OnePlus címszó alatt.
-
Nem kap több frissítést a Wolcen: Lords of Mayhem
gp Szeptembertől a többjátékos mód már nem lesz elérhető.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
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 trisztan94 #3215 üzenetére
Ha mondjuk megnyitnád a konzolt (F12 vagy Ctrl+Shift+I, Console fül), és azt is elmondanád, ott látsz-e hibát, sőt, esetleg még jsfiddle-re vagy jsbinre vagy tinkerbinre felraknád a kódot, hogy kész változatot lássunk, akkor biztos előrébb lennénk.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #3223 üzenetére
De, jsFiddle-re is fel tudod így rakni, úgy, hogy az "Add resources" résznél bepakolod a fájl elérési útját, innen:
https://github.com/marijnh/CodeMirror/tree/master/lib
konkrétan ezt:
https://raw.github.com/marijnh/CodeMirror/master/lib/codemirror.js
és ezt:
https://raw.github.com/marijnh/CodeMirror/master/lib/codemirror.cssMondjuk mostanában nem tudom, mi van a jsFiddle-lel, elég sokat b@szakodik, de használhatod a jsbint is, meg a tinkerbint is, annyi a különbség, hogy ezeknél <script> tagben adod meg, az src attribútum használatával.
Amíg nem mutatsz konkrét kódot, sajnos nem tudjuk megoldani a hibádat.Sk8erPeter
-
Sk8erPeter
nagyúr
Na most hirtelen nekem nem esik le valami, úgyhogy én kérnék szépen iránymutatást.
Ide felraktam valakinek egy példát a jQuery Countdown pluginról:
http://jsbin.com/icisuy/2/edit
A lényege, hogy számoljon vissza 2013. dec. 31., 23:59:59-ig.
Ezért így inicializáltam a dátumot:var myDate = new Date(2013, 12, 31, 23, 59, 59);
ez alapján elvileg jónak kéne lennie:
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Datenew Date(year, month, day [, hour, minute, second, millisecond]);
ennek ellenére a toString alapján ez jön ki:
Fri Jan 31 2014 23:59:59 GMT+0100 (Central Europe Standard Time)
most itt az időzónabeli különbséggel nem tudtam magyarázni, mivel ez konkrétan egy hónapnyi eltérés pluszban.
Miért?============
Szerk.: jól van, leesett, benéztem.
month
Integer value representing the month, beginning with 0 for January to 11 for December.Tehát így lesz jó:
var myDate = new Date(2013, 11, 31, 23, 59, 59);
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Dave-11 #3230 üzenetére
"PHP-val egy adatbázisból íratom ki a bejegyzéseket, egy while ciklussal, és akkor hogy állítsak különböző id-t"
Te magad írtad le a kulcsszót... ciklus... pl. létezik olyan, hogy ciklusváltozó, aminek az értékét minden lépésnél növeled eggyel.Például:
$i = 1; // most direkt egyről indítom
while($cikk=mysql_fetch_assoc($adat)){
// ....
echo '<input type="text" class="hozzaszolas" id="hozzaszolas_' . $i . '" />';
// ....
$i++; //növeled
}nem egy nagy misztikum, így olyan id-jeid lesznek, hogy hozzaszolas_1, hozzaszolas_2, stb...
de én a helyedben inkább a cikknek az id-jával helyettesíteném, például így:echo '<input type="text" class="hozzaszolas" id="hozzaszolas_' . $cikk['id'] . '" />';
(persze csak ha id kulcs létezik)
hogy OFF-oljak is egy sort, ha már PHP-kód:
az elavult és szar mysql_query-s bohóckodásról még most szokj le, és szokjál rá a PDO-ra (Tele von Zsinór kolléga gyors áttekintő cikke: http://maerlyn.eu/2011/12/03/pdo.html). Objektumorientált adatbázis-wrapper, prepared statementekkel.
Ha ennél meggyőzőbb érv kell:
http://prohardver.hu/tema/php_kerdesek_2/hsz_10152-10152.htmlmásik:
echo "<input type='text' id='hozzaszolas' />";
ezt szintén felejtsd el. A macskakörmöt hagyd meg HTML-kódnak, a PHP-kódban pedig használj sima aposztrófot:
echo '<input type="text" id="hozzaszolas" />';
Gyorsabb is (nem kell változó-behelyettesítéssel foglalkozni aposztróf esetén).Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #3233 üzenetére
"Lehet, hogy az a baja, hogy külön fájlba van?"
Az biztos, hogy nem, ha megfelelően, sorrendben include-olva van.
Az viszont nagyon nem mindegy, hogy pl. vajon onloadra van-e kötve.
Így:
http://jsbin.com/esomel/1/editSzóval így próbáltad? Még egy kis infó kéne, hogy rájöjjünk, mi lehet a para.
======================
(#3232) Dave-11 :
"Arra a változós módszerre én is gondoltam, csak először kicsit megijedtem tőle"
Ne félj, nem vagy egyedül, itt vagyunk veled.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #3237 üzenetére
A videód eléggé kapkodós volt, igazából nem tudom, hova rohantál, de lehet, hogy többet ért volna egy kicsit tökölősebb videó.
Az a baj, hogy a kódod többi részében nem vágjuk, mi történik, mi kúrhatja el a megjelenítést, még ennyi infó is kevés ehhez. Azt meg nem értettem, amit egy másik hsz.-ben írtál, hogy a $(document).ready()-n KÍVÜLRE raktad azt, amit írtam... heh?Most ide felraktam még egy példát, elölről kezdve, hátha valami para ennél is előjön, de nem volt semmi gond:
http://jsfiddle.net/Sk8erPeter/TcqAf/
Nálad lehet, hogy valami szükséges fájl nincs betöltve.
===============
(#3238) Dave-11 :
szívesen![ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Egy nagyon jó összefoglaló miértekről és hogyanokról, namespace-ekről, objektumokról, tömbökről, scope-okról, adatrejtésről és hasonlókról (nekem modder linkelte):
Kevés igazán átfogó cikket látni, ami egy helyre gyűjti a különböző konvenciók értelmes magyarázatát, ez szerintem pont olyan, érdemes egyszer elolvasni.
Folytatása:
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #3240 üzenetére
harmadik rész, további kételyek vagy félreértések eloszlatására (biztos haladók is találnak benne olyan részeket, amik tisztáznak pár nem triviális dolgot, lásd pl. Variable Hoisting):
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #3242 üzenetére
"Mint a videóban is látszik,ha document ready-be vannak berakva, akkor a feltöltő oldalon megy, ha azon kívülre, window onload-ba, akkor meg a megjelítő oldalon."
Ezt még mindig nem értem, valami fogalmi zavarokat érzek nálad. Mi az, hogy $(document).ready()-n KÍVÜLRE, window.onloadba? Ez így értelmetlen. A .ready egy jQuery által definiált esemény, az .onload pedig megint egy másik esemény, van eltérés is a kettő között, amire a magyarázatot is gyorsan megtalálhatod:http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready/3698214#3698214
"The ready event occurs after the HTML document has been loaded, while the onload event occurs later, when all content (e.g. images) also has been loaded.The onload event is a standard event in the DOM, while the ready event is specific to jQuery. The purpose of the ready event is that it should occur as early as possible after the document has loaded, so that code that adds funcionality to the elements in the page doesn't have to wait for all content to load."
Szóval nem tudom, honnan jött nálad ez a "document ready-n kívülre, window onload-ba", de ez helytelen, értelmetlen, két különböző eseményről beszélünk, vagy egyikre, vagy másikra feliratkozhatsz egy event handlerrel (mindkettőre is feliratkozhatsz, csak értelmetlen).
Érdekes egyébként, amit írsz, hogy a .ready-vel az egyik esetben nem megy, csak onload-dal.
Egyébként nincs abban semmi gányolás, amit csináltál.
Egyszerűen annyiról van szó, hogy más esemény bekövetkezésére iratkoztál fel egy adott eseménykezelővel.================
(#3243) trisztan94 :
örülök, ha tisztázott egy-két részletet.
Amúgy viszont szerintem ha valaki érteni akarja, mit csinál jQuery-ben, akkor annak értenie kell először az alapokat, szóval sztem sima JavaScripttel érdemes indítani.================
(#3244) martonx :
rakhatta volna mondjuk egy initCodeMirror() nevű csodafüggvénybe, vagy hasonlóba a kódját, de szerintem ettől még nem gányolás, amit csinált.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz martonx #3246 üzenetére
"csak igyekszek a S.O.L.I.D elvekből minimum a Dry-t betartani."
De melyik a Dry a S.O.L.I.D.-ban?http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
"Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion"De Don't Repeat Yourself (DRY) is van:
http://en.wikipedia.org/wiki/Don't_repeat_yourself
Gondolom erre gondoltál.Most ezt lehetne függvénybe rakni, amit Trisztán írt, hogy mondjuk a
{
mode: "javascript",
theme: "default",
lineNumbers: true
}
objektum legyen a default, de ebben az esetben van értelme? Ilyen az API, a readOnly-t még hozzá kell csapni, és két elem miatt írtál egy függvényt, ami aztán a CodeMirror API-t használja fel, és ki tudja, lehet, hogy később mondjuk rájössz, hogy az adott kódrészletnél nem is JavaScript-kiemelést szeretnél használni, hanem mondjuk PHP-set. Igaz, rakhatod a paraméterek passzolgatását függvénybe, de nem érzem, hogy azzal előrébb lennél, csak egy wrappert húznál kb. azonos mennyiségű kód köré, ami meg viszont már tök felesleges kódbázis-növelés.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #3253 üzenetére
Hát például úgy, hogy a window.onload eseménykezelőjén belül.
Itt folyamatosan a $(document).ready() "szemszögéből" közelítetted meg a kérdést, amikor a kettő más.
Tehát vagy a $(document).ready() eseménykezelőjéről, vagy a window.onload eseménykezelőjéről beszélsz, és kész, a kettőt nem kell keverni.
Ha valamit a window.onload eseménykezelőjén belülre raksz, akkor az ott van, ha meg valamit a $(document).ready() eseménykezelőjén belülre raksz, akkor az meg ott van. Szóval érted, nem kell úgy kezelni a $(document).ready()-t, mint valami felsőbbrendű esemény.Sk8erPeter
-
Sk8erPeter
nagyúr
Mivel semmi kódot nem látunk, így nehéz lesz segíteni. Megnéztem a honlapját, és ott egy 1 perces időtöltés alatt egy normális doksit sem találtam, szóval én nem nagyon tudok miből kiindulni.
===================
(#3261) martonx :
"Mivel aszinkron felépítésű, és a javascript kód gépi kóddá fordulhat, ezért igen hatékony szerver oldalt lehet benne készíteni. Már ha nem lenne a javascript olyan amilyen."
Mármint konkrétan mire gondolsz?[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Chrome-ban: nyitsz egy F12-t, és a sorokat Shift+Enterrel választod el, ennyi.
Operában: Ctrl+Shift+I, és a sorokat szintén Shift+Enterrel választod el, majd Ctrl+Enterrel futtatod.
Egyébként mivel az Opera is Webkitre fog váltani, a Dragonfly meg fog szűnni.Firefoxban: lásd (#3269), vagy Firebug:
Show command editor:Sk8erPeter
-
Sk8erPeter
nagyúr
válasz martonx #3273 üzenetére
Ja, ez teljesen jogos szempont. PHP-ben is előszeretettel kihasználják az emberkék - tisztelet a kivételnek -, hogy egy változóba BÁRMILYEN típust betehetnek (ami előtte int típus volt, az később nyugodtan lehet string, majd objektum vagy tömb is, hiszen ki akadályozza meg ebben), gányolhatnak kényükre-kedvükre, és támogatja céljaik elérésében őket a PHP...
Ebből a szempontból tényleg "veszélyes" eszköz. Mondjuk az objektumorientált kódolás és a láthatóság megfelelő kezelése is macerás JavaScriptben (lásd a korábban linkelt cikkeket). Tényleg az a gáz vele, hogy túlságosan szabad kezet ad. Mondjuk szerintem az is gáz, hogy JavaScriptben alapból nem kötelező a pontosvessző megfelelő használata (mert automatikusan kiegészítődik vele a kód).=======================
(#3272) Jim-Y : szívesen.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Most csak arra a részre reagálok, hogy a document.write() ilyesmi feladatokra ritka kivételektől eltekintve (pl. amikor csak meg akarod mutatni, hogy igen, ilyen is van) sztem elég csúnya megoldás alapból.
Akkor már valahogy így, jQuery használata nélkül:
/**
* Inject a JavaScript file into the header
*/
function injectJavaScriptFile( jsFilename, idOfScriptTag ){
// http://jsperf.com/document-head
document.head || (document.head = document.getElementsByTagName('head')[0]);
var
headNode = document.head,
newScriptNode = document.createElement('script');
newScriptNode.type = 'text/javascript';
if(idOfScriptTag){
newScriptNode.id = idOfScriptTag;
}
newScriptNode.src = jsFilename;
headNode.appendChild(newScriptNode);
}aztán így használhatod:
injectJavaScriptFile('myscriptfile.js');
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Szívesen! A document.head nem minden böngészőben támogatott:
https://developer.mozilla.org/en-US/docs/DOM/document.head
azt hiszem, csak a HTML5 specifikációban rögzítik, hogy ez így valid.
Ha ez a document.head undefined, mert az adott böngészőben nem támogatott, akkor a VAGY-kapcsolatnál lévő értékadás jut érvényre:
document.head = document.getElementsByTagName('head')[0]
így már nem lesz undefined a document.head; a document.getElementsByTagName('head')[0] a legtöbb böngészőben működik, csak valamennyivel lassabb, lásd:
http://jsperf.com/document-head
Persze nem lenne muszáj egyébként ez az értékadás; lehetne úgy is, hogy
var headNode = ( document.head | document.getElementsByTagName('head')[0] );
a hatás elvileg ugyanaz lenne, a headNode a helyes értéket kapná (most nem beszélek arról az esetről, ha valamelyik degenerált kód rosszul bírálta felül a document.head-et), csak utóbbi esetben a document.head-nek nem lenne értékadás, ami egyébként nem is muszáj, nyugodtan kihagyható.
Tehát ha úgy jobban tetszik, az utóbbi értékadást is használhatod.Szerk.: amúgy úgy is átalakíthatod, hogy a függvénynek átadod, hogy melyik elemhez szeretnéd appendelni a script taget. Mindenesetre mivel ez is ismétlődő feladat lehet, mindenképp érdemes szerintem függvénybe rakni, és úgy meghívni (beszédesebb is).
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
De az már külön függvény dolga, ez attól független. Plusz akkor arra is mindenképp figyelj oda, hogy nehogy egy scriptfájlt többször is be akarjon húzni, ezt előtte mindenképp csekkold, hogy nem lett-e már include-olva. Lehet akár csúf globális változóba is tárolni, vagy id-t adni a script tagnek, és annak meglétét ellenőrizni, és egyéb megoldásokon is lehet törni a fejed.
Sk8erPeter
-
Sk8erPeter
nagyúr
(#3291) Karma : megelőztél 1 perccel.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
A kivétel akkor keletkezik, amikor tényleg olyan hiba történik, ami indokolttá teszi, hogy ne fusson tovább az adott kódrészlet. Például szerveroldali logika esetén ha hiba történik az adatbázis-kapcsolatban, és éppen az adatok tárolása a cél, akkor nem lenne jó, ha továbberőltetnénk a kód futtatását, hanem megfelelően kezelni és logolni kell a hibát, majd adni egy felhasználóbarát hibaüzenetet. Hasonló vonatkozhat null-lal egyenlő változókon megkísérelt metódushívásokra, stb.
Logikusan kell strukturálni a kódodat, és ahogy Karma is javasolta, olykor az egyszerű feltételvizsgálatok sokkal célravezetőbbek lehetnek, mint a nem kritikus hiba esetén történő kivételdobálások; ha egy kódrészlet lefuttatására meg mindenképp szükség van, akkor nyilván ne tedd a kritikus kódrészlet után, vagy tényleg a try-catch blokkon kívülre kell rakni (ebbe beleérthető a finally is).
Azt gondold végig, nem tudod-e jobban lekezelni az általad említett esetet, a JavaScript beépített függvényei segítségével is rengeteg feltételvizsgálatatot le lehet kezelni, a jQuery metódusai ehhez még nagyon sokat hozzátesznek, valamint ott van még a http://phpjs.org/ is, ahol rengeteg PHP-s függvény egyszerű JavaScriptes átírása szerepel, ez is sokat segíthet."Ezek az én függvényeim, nem csinálnak semmit, csak az első a jQuery objektumhoz "simán" hozzáfűzött függvény, míg a második a jQuery.prototype-hoz fűzött, az első azért dob biztosan kivételt, mert a függvényt a deklarált objektum után hoztam létre, így a meghívott objektumnak nem lesz showText() metódusa, míg a második esetben, prototype-nál igen, így az nem dob kivételt."
Igazából az alapprobléma nekem eléggé homályos, hogy mit is szeretnél elérni, és azt miért nem egy jól megírt jQuery pluginnel teszed.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ezt most nem egészen értem, hol van ebben a példakódban a klasszikus prototype szemléltetése?
A jQuery.fn.blabla = function () { ... } pont egy jQuery plugin megírásának mintája, de a tiéd abból a szempontból sem túl jó, mert beledrótozod, hogy a <p>-kre működjön, nincs chainability, és így tovább (lásd ezt: http://docs.jquery.com/Plugins/Authoring). (Ha már szemléltetés, legyen jó. )
A klasszikus JS prototype-ra ez egy nagyon jó és gyorsan megérthető szemléltetés:
http://stackoverflow.com/questions/572897/how-does-javascript-prototype-work/4778408#4778408Sk8erPeter
-
Sk8erPeter
nagyúr
Igen, ez így van, egy alias, de attól még nem a prototype szemléltetése, mert ha a prototype-ot akarod szemléltetni, akkor szerintem plain JS-megoldást kell bemutatni, és nem ide is erőltetni a jQuery-t; amit linkeltem, az szerintem kifejezetten jó példa ilyenre.
"Ha a metódusban visszatérsz magával az objektummal, akkor létrehoztad a chainability lehetőségét."
Köszönöm, hogy elmagyarázod, de nekem ez most nem újdonság, de én meg pont azt mondtam, hogy te nem teremtetted meg a chainability lehetőségét, mivel nem tértél vissza az objektummal.
De hidd el, nem kötekedésként írtam, hanem azért, mert nem volt tiszta, hogy ezt vágod-e vagy sem.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz #68216320 #3335 üzenetére
Így keress rá:
jQuery context menulegjobb találatok:
http://medialize.github.com/jQuery-contextMenu/demo/dynamic-create.html
http://www.jquery-plugins.hu/plugin/77-jquery-context-menu.htmlhttp://www.jquery4u.com/menus/right-click-context-menu-plugins/
Azt azonban érdemes lenne mérlegelned, hogy biztos jó-e, ha felülbírálod a jobbklikkes menüt, nagyon sok felhasználó nem szereti (igazából én sem nagyon).
A törlőikonra azt is szokták csinálni, hogy ha a kép föléviszed az egeret, akkor a kép sarkában megjelenik egy piros X, amire kattintva visszakérdeznek, hogy biztosan törölni akarod-e. Szóval az egy jó alternatív megoldás lehet.Szerk.: ja, bocs, ez jQuery plugin, amit linkeltem, hirtelen kevertem a jQuery topic-kal... De remélem, nem gond, kész megoldást plain JavaScriptben most hirtelen nem találtam.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz #68216320 #3337 üzenetére
"az a megoldás problémás lehet, ha mouseover-re jelenik meg a törlő ikon, mert amúgy a képre kattintással adom vissza a linket az editornak, window bezárással együtt"
Ezt most nem értettem, miért jelent problémát. Hogy érted?A checkboxos megoldás egyébként teljesen jó.
"Viszont lesz egy olyan feladatom, ahol szükséges lesz a jobb menü az elemek tulajdonságainak lekéréséhez, törléshez, stb."
Háát, igazából ezekre is lehet bőven alternatívát találni, nem biztos, hogy a legjobb felülbírálni a jobbklikkes menüt. Persze ha a felhasználóknak bejövős, meg sikerül igényesen megoldani, akkor talán megbocsátható.
Csak az a gáz, hogy a felhasználók számítanak arra, hogy van egy default viselkedése a böngészőnek, és akkor hoppá, hirtelen egy adott felületen más, ez nem biztos, hogy jó. Ezt csak azért mondom, hogy lehet, hogy lesz olyan felhasználó, aki emiatt anyázni fog."Ott mindenképpen kelleni fog a content menü."
Mármint context menu.Sk8erPeter
-
Sk8erPeter
nagyúr
Bármilyen programozási nyelvről is van szó, gondold végig először a feladatod algoritmusát. Mit is kell csinálni, hogyan is lehet megoldani a feladatot, akár többféleképpen is, és a többféle megoldás közül érdemes kiválasztani a legrövidebb futási idejűt. Igazából az adott programozási nyelven megfogalmazni az adott feladatot már másodlagos kérdés (egy házat is először megterveznek, és csak utána esnek neki a megvalósításnak).
Az adott beviteli mezőbe begépelt karaktereken végigmész egy for ciklussal (length tulajdonságot felhasználva), és karakterenként megnézed, számról van-e szó. Az egy újabb kérdés, hogy minden egyes szám pozícióját külön-külön fel kell jegyezned (pl. asd1bla2qwe3, ebben a stringben 3 db szám is van), vagy csak a legelső szám pozíciója az érdekes.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz spammer #3363 üzenetére
Azt javasolnám, hogy használj beszédesebb id-kat és class-okat, mert nagyon gondban leszel később, amikor újból meg kell nézni a kódodat, hogy most ez miért is épp #toggle3, a másik meg miért kapott .toggle3 class-t (miért ugyanaz a kettő, csak az egyik id, a másik class?), stb... Inkább legyen hosszabb neve, de legyen beszédes.
Csak érdekességként még ilyen megoldás is létezik:
http://jsfiddle.net/Sk8erPeter/XfDN6/Aztán másik lehetőség, ha nem akarod bedrótozni a szöveget a JS-kódba, használhatsz .data()-t:
Sk8erPeter
-
Sk8erPeter
nagyúr
"és minek raktad bele, hogy return false?"
Erről érdemes elolvasni ezt:
return false, event.preventDefault, event.stopPropagation
http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false(#3354) Jim-Y :
raggg: lemaradt egy záró ;
Igazából ez nem tekinthető SAJNOS hibának JavaScript-kód esetén, hiszen a JavaScript-kód automatikusan kiegészül pontosvesszővel, amennyiben explicite nincsenek kitéve.
Ez az automatikus kiegészítés adott esetben nem várt hibákat is okozhat, ezért egyébként jó, ha felhívjuk a figyelmét az embereknek, hogy ne felejtsék kitenni a pontosvesszőt.
Ha érdekel bővebben (érdemes tudni róla):
Automatikus pontosvessző beszúrás JavaScriptben
http://vimeo.com/15392265
http://www.slideshare.net/presidento/automatikus-pontosvessz-beszrs-a-javascriptbenSk8erPeter
-
Sk8erPeter
nagyúr
válasz spammer #3366 üzenetére
Az a "var" nem egy mágikus valami, csupán egy kulcsszó a változók deklarálására...
Amúgy azzal a kóddal az a para, hogy be van drótozva a JS-kódba a magyar szöveg, pedig lehet, hogy mondjuk az oldal többnyelvű, meg lehet, hogy könnyebben akarsz változtatni rajta, így azt szeretnéd, hogy csak a HTML-kódba kerüljön bele, itt van egy ilyen megoldás, vegyítve Jim-Y kódját és a .data()-t:
Sk8erPeter
-
Sk8erPeter
nagyúr
"ilyen esetben a return false e.preventDefaultot jelent"
Nem, a return false event.preventDefault() ÉS event.stopPropagation() hívást IS jelent!
http://www.mail-archive.com/jquery-en@googlegroups.com/msg71371.html
Amúgy nincs mit
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz spammer #3370 üzenetére
Tessék, gyors favágó megoldás:
http://jsfiddle.net/Sk8erPeter/XeHt2/2/
felhasználom a Bootstrapet és a Font Awesome-ot is, lásd External Resources panel.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz megalover #3373 üzenetére
Igazából mi a cél? Videó automatikus lejátszása?
Mert akkor használhatnád a YouTube JavaScript Player API-t:
https://developers.google.com/youtube/js_api_reference
vagy egy erre épülő jQuery plugint:
http://www.tikku.com/jquery-youtube-tubeplayer-plugin#tubeplayer_tutorial_2Sk8erPeter
-
Sk8erPeter
nagyúr
válasz sebastien19 #3383 üzenetére
Itt már adtam választ:
http://prohardver.hu/tema/php_kerdesek_2/hsz_13344-13344.htmlDe valóban inkább itt folytassuk.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz megalover #3382 üzenetére
Tesztelted is a TubePlayert a saját oldaladon, a saját videódnál, vagy csak tippeltél?
Én nem vágom, mert nem próbálgattam még a nézettségi adatokat, ilyen YouTube-látogatottsággal még sosem kellett szórakoznom, főleg nem trükközgetéssel, a TubePlayer oldalán belinkelt videóra meg hiába frissítgetek, most nem változik ettől a látogatószám. Ezért feltételeztem, hogy cookie-tól függ.
Ennyi infó birtokában nehéz bármit mondani, mivel a Te oldaladon sem látom a plugint, így kipróbálni sem tudom. Azt láttam, hogy ha a videódra kattintgatok, nálad változik a látogatószám, ellentében az előbb belinkelt videóval. Szóval ezt nem vágom.
Azt a cikket, aminek utánanéztél, belinkelhetnéd.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz megalover #3387 üzenetére
De pont azt mondom, hogy annál a videónál amikor a YouTube-on közvetlenül frissítgettem, akkor sem változott a látogatottság száma, hogy miért, azt nem tudom - én a cookie-kban való tárolásra tippeltem eddig, de a Te videód ellentmond ennek.
Nem írtad le, melyik résznél akadtál el. Az oldalon részletes segítség van hozzá, hogy kell beüzemelni.
Itt van további segítség.Vegyük azt, hogy van egy ilyen dived, amibe belekerül majd a videó:
<div id="youtube-player-container"> </div>
az oldalad head-részében include-olod a jQuery-t ÉS a TubePlayert:
<script type="text/javascript" src="{your_path_to}/jquery.min.js"></script>
<script type="text/javascript" src="{your_path_to}/jQuery.tubeplayer.min.js"></script>nyilván a {your_path_to} részt ki kell cserélni a saját elérési utadra.
Aztán a head-részbe belerakod a példakódot így:
<script>
$(document).ready(function () {
$("#youtube-player-container").tubeplayer({
width: 600, // the width of the player
height: 450, // the height of the player
allowFullScreen: "true", // true by default, allow user to go full screen
initialVideo: "DkoeNLuMbcI", // the video that is loaded into the player
preferredQuality: "default", // preferred quality: default, small, medium, large, hd720
onPlay: function (id) {}, // after the play method is called
onPause: function () {}, // after the pause method is called
onStop: function () {}, // after the player is stopped
onSeek: function (time) {}, // after the video has been seeked to a defined point
onMute: function () {}, // after the player is muted
onUnMute: function () {} // after the player is unmuted
});
$.tubeplayer.defaults.afterReady = function($player){ $("#youtube-player-container").tubeplayer("play"); };
});
</script>itt a DkoeNLuMbcI részt le kell cserélned a saját videód azonosítójára (ennél a videónál a cím így néz ki: http://www.youtube.com/watch?v=DkoeNLuMbcI, itt ebből tehát a v értéke). Mivel szerepel benne a
$("#youtube-player-container").tubeplayer("play")
sor is, ezért elvileg egyből le kell játszania a videót az oldal betöltődése után.=============
Na, de időközben inkább készítettem neked egy online demót, ahol egyből láthatod a kódot is.
>>> http://jsbin.com/irebiw/1/edit
Ha valahol elakadtál, kérdezz nyugodtan.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz sebastien19 #3390 üzenetére
Most konkrétan hirtelen a mikéntjét nem tudom, de rosszakaró biztos megoldja, mert kliensoldalról elvileg azt küldesz el, amit akarsz.
A karakterkódos scriptet azóta módosítottam, mert kiderült, hogy ha az egérgomb eseménykezelőjéből return false-szal térek vissza, akkor a fókusz (Chrome-ban legalábbis) átugrik a jsFiddle-oldalon a JavaScript-kódszerkesztő részre (az meg elég idegesítő, mert pont a funkcióját nem tölti be jól, ha itt futtatod), úgyhogy átírtam úgy, hogy ellenőrzöm, a jsFiddle-oldalon történik-e épp a végrehajtás, és a bal, középső vagy jobb egérgomb lett-e lenyomva, ha igen, true-val térek vissza; így már nem ugrik át a fókusz:
http://jsfiddle.net/Sk8erPeter/EAjYe/
A script mindig az utolsó lenyomott gombot írja ki, tehát értelemszerűen ha az input mezőbe klikkelsz, egy Ctrl+X-et úgy fog kiírni, hogy előbb kiírja a Ctrl-t (17-es keycode), majd utána az X-et (88-as keycode).
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Te nagyon erőlteted mindenhol ezt a Flash-vonalat... De akkor már indokold is meg. Flash-ben hogyan intézed el, hogy számolja a plusz látogatottságot? Próbálkoztál már ilyennel, onnan tudod, vagy csak tippelsz?
Java applettel megoldod, hogy számolja a látogatottságot, klikkeljen, amikor a rendes API-n keresztül nem? Ezt fejtsd már ki légyszi bővebben, tényleg nagyon érdekelne, készítettem már Java appletet, de nem igazán értem, te mégis mire gondolsz... (Arról nem is beszélve, hogy a Java-futtatós engedélykéréstől az átlagfelhasználó sanszos, hogy összeszarja magát.)Sk8erPeter
-
Sk8erPeter
nagyúr
válasz sztanozs #3394 üzenetére
"Amit meg tudsz hívni, az a lejátszó publikus 'play' metódusa - de arról ugye tudja a lejátszó, hogy nem a gomb váltotta ki, hanem egy külső script hívta meg - így nem is számolja a lejátszást."
Mondjuk erről nem lenne rossz látni inkább valami hivatalos állítást, hogy mik okozhatnak különbséget a lejátszásban, és az API-n keresztüli lejátszás miért okozza azt, hogy az nem számolódik bele a lejátszásba. De simán el tudom képzelni, hogy az lenne az indok, hogy nincs közvetlen "user interaction", és ha automatikusan lejátszódik pl. egy reklámvideó (pont amilyet a kérdező akar beágyazni), akkor azt nem biztos, hogy a felhasználó meg is akarta nézni, mert esetleg akaratán kívül automatikusan lejátszódott a videó. Ebben az esetben viszont amit szeretne, az nem is megvalósítható, legalábbis az eddigi próbálkozásokkal (de hogy az előbb a Java applet hogy jött ide, na arra nagyon kíváncsi lennék... szerk.: rendben, azóta kiderült Tapsi hozzászólásából, hogy csak nagy tévedésből keverte ide).
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
hát akkor jó...
Ha már nyomatod a Flash-t, gondolom tudod: Flash-es dologba ilyen módon (most a klikkelős játékról van szó) semmiképp nem lehet automatizáltan belenyúlni? Csak mert meglepődnék, ha erre már nem találtak volna ki módszert...
Nekem közöm nincs a Flash-hez (és nem is lesz), úgyhogy fogalmam sincs a válaszról.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz megalover #3395 üzenetére
Na, itt a válasz:
YouTube Says Autoplays Don’t Count
http://gigaom.com/2008/07/23/youtube-says-autoplays-dont-count/pont ahogy gondoltam, azért nem számolódik, mert nem felhasználói kezdeményezésre történik a lejátszás:
"YouTube has revealed that the company purposefully does not count video autoplays.“Autoplaybacks are not counted toward the visible ‘views’ numbers displayed on the YouTube site because autoplaybacks are not viewer initiated,” a YouTube spokesperson said via email, adding that viewcounts should be a reflection of the interests and intents of video viewers."
Pontosan azért, mert bizonyos felhasználók hivatalos partnernek számítanak, akik tudtommal nézettség után kapnak valamennyi lóvét is, de ilyen autoplay-megoldásokkal ez könnyen kijátszható, ráadásul idegesítő is lehet a felhasználónak.
Sk8erPeter
-
Sk8erPeter
nagyúr
"de a dolog gyenge pontja egyébként is a PHP-hívásnál van"
Most ezt nem értettem, milyen PHP-"hívásnál"? Úgy érted, amikor a szerver megkapja a klienstől az adatokat? Csak mert akkor még totálisan irreleváns, hogy PHP, ASP.NET vagy Java-alapú szerver futkorászik a háttérben...
Szóval inkább az a lényeg, hogy a klienstől milyen adatok utaznak a szerver felé.Amúgy ja, valszeg a Flash-es vagy Java appletes módszer jobb lehet talán erre a kifejezetten kattintásorientált feladatra.
"Persze a favágó módszer a másodpercenkénti híváslimit beállítása, de az kicsit sérti a szépérzékem."
Miért, mi a gond azzal, ha valami totál irreális másodpercenkénti kattintásszámra azt mondjuk, hogy az tuti nem felhasználói kattintásmennyiség?Sk8erPeter
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs