- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- Archttila: SMART tesztelés automatizálva: smartctl poller script Zsh-ban, RPi-re
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- btz: Internet fejlesztés országosan!
- sziku69: Fűzzük össze a szavakat :)
- Parci: Milyen mosógépet vegyek?
- bacsis: Gyere el a 11. BRSZK-ra!
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
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
-
dqdb
nagyúr
Átfogalmazom:
Egy jól megírt kódban nincs olyan, hogy egyszer működik, egyszer nem.
console.log("yolo");
Minden egyes esetben ki fogja írni, hogy yolo. Nincs olyan, hogy 10x kiírja, egyszer nem.

Nyilván fejlesztés közben vannak bugok, meg furcsaságok.
Az átfogalmazásodból is hiányzik az azonos kiindulási és működési körülmények szöveg.
-
Zedz
addikt
A programozásban nincs olyan, hogy valami egyszer működik, egyszer nem.
Számtalan példát fel tudok hozni.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
libamajas
tag
"...a html és css megy"
Azt nehezem tudom elképzelni annak tükrében, hogy nem tudtad hova rakd a stílusokat és a scripteket.

"Hogyan tudom kiiratni a fokokat a képek alá?"
Tétrehozol egy új sort és annak a megfelelő cellájába írod. Ha megy a HTML, mennie kell.
document.write(napokHomerseklete+" ");
A napokHomerseklete egy tömb. Ha simán kiírod így, az egész tömböt írja ki, nem az adott nap hőmérsékletét. Az i-edik (ciklus indexe, mely megfelel a tömb indexeinek) napnak akarod a hőmérsékletét.
Ezt a cikluson belülre kell, hogy a megfelelő naphoz rakja be.Én ide írtam
for (var i = 0; i < napokHomerseklete.length; i++)
{
document.write(napokHomerseklete+" "); <==========
}
{
if (napokHomerseklete <= 5) {
idojarasClass = 'hideg';
} else {
idojarasClass = 'meleg';
}
currentElement = document.getElementsByTagName("td")(i);
currentElement.classList.add(idojarasClass);
}}
-
libamajas
tag
Arra figyelj, hogy jQuery-t is rakott bele a kolléga, így ha vanilla JS-ben kell megcsinálni a feladatot, nem feltétlen fogják így elfogadni.
Gondolom sulis beadandó ebben a remek oktatási rendszerben?
Pontosan! Akkor ez így kuka?
Szerintem vanillába kell. Vanillába hogy nézne ki? -
Speeedfire
félisten
Lehet én vagyok fáradt, de még mindig nem értem mit akarsz a var = 0-val.
A var javascriptben változót jelöl.
Így használjuk: var változóneve = változóértékfor ciklusnak pedig ez a szintaktikája:
for (var i = 0; i < 10; i++)
Ami azt jelenti, hogy előteszteléses ciklust indítasz egy helyi scope-ban értelmezett i változóval, melynek kezdőértéke 0, és minden ciklusban növekszik egyel amíg a feltétel igaz (tehát hogy kisebb, mint 10)
A var = 0 nem jelent semmit, hibát fog dobni.
Itt az alapokkal is baj van.

libamajas: Javaslom, hogy ezt fusd át. -
libamajas
tag
"var i = 0" ==> var=0?
Ez mi akar lenni?

"A feladatnak nagyjából úgy kell kinéznie mint az idokep.hu-nak."
Ahhoz HTML + CSS is kellene, nem csak Javascript.
Var=0
A css html nem g
Annyira lenyeges. A javascript a fontos. -
libamajas
tag
var napokHomerseklete = [
10, -20, 5, 8, 12
];
for (var i = 0; i < napokHomerseklete.length; i++) {
if(napokHomerseklete[i] <= 5) {
alert("hideg");
} else {
alert("meleg");
}
}Valahogy így. Az alertek helyére pedig berakod a logikát ami kiírja a megfelelő helyre a megfelelő infót.
Ezt lehet így is?
"var i = 0" ==> var=0?(I)A feladatnak nagyjából úgy kell kinéznie mint az idokep.hu-nak.
(/I) -
Siriusb
veterán
Igen, közben leesett

Nem rossz amúgy, de nem fogom használni. Ott van nekem a Sublime meg a Brackets (mostanában inkább Sublime, sokkal gyorsabb, egyszerűbb kezelni szvsz), komolyabb melóra pedig IDE (Netbeans, Visual Studio, ha úgy adódik). Tehát igazából nem értem, hogy miért csinálták ezt, direkt kompetense akar lenni a Bracketsnek, ami már eléggé kiforrott.
Mármint konkurenciája

-
fordfairlane
veterán
Ja azt nem vágtam, hogy van Win kliens is azóta, én OSX-re raktam fel.
(#4136) martonx

A win kliens az újdonság. Eddig leginkább csak OS X alá volt.
-
martonx
veterán
A legenda úgy tartja, hogy csúnya dolog a presentation logicba presentation-t rakni. Ergo JS-be csúnya explicit stílusokat írni, és nem illik.
Inkább cserélgessen osztályokat.Most kezdtem elég komolyan a szép js-css-html kódok írásával foglalkozni, készüljetek fel, hogy be fogok szólni mindenért!

Jogos.

-
Sk8erPeter
nagyúr
A legenda úgy tartja, hogy csúnya dolog a presentation logicba presentation-t rakni. Ergo JS-be csúnya explicit stílusokat írni, és nem illik.
Inkább cserélgessen osztályokat.Most kezdtem elég komolyan a szép js-css-html kódok írásával foglalkozni, készüljetek fel, hogy be fogok szólni mindenért!

Ha jogos dolgokért szólsz be, akkor azzal semmi gond nincs.

Pl. jelen esetben jogos a megjegyzésed.Egyébként pont ezért rakattam ezt az összefoglalóba:
http://www.slideshare.net/fgalassi/refactoring-to-unobtrusive-javascript -
Sk8erPeter
nagyúr
Múltkor - hibásan - mondtam azt, hogy az e.preventDefault() helyett e.defaultPrevented-et kellene használni. Persze azóta már fel lettem világosítva, hogy hülye vagyok, rosszul emlékeztem valamire, ezt tudom.
Most vágom az egyik tutorial vidim, ott viszont egy <a>-ra e.defaultPrevented-et használtam, és valamiért pontosan ugyanaz történik, mintha e.preventDefault() lenne használva, tehát nem fut le az alapértelmezett esemény.
Na de miért? MDN szerint az e.defaultPrevented egy boolean értéket ad vissza arról, hogy az alapértelmezett esemény lefutása meg lett-e gátolva.
Nem lehet, hogy azzal, hogy azt hívtam meg, úgy interpretálta a böngésző (Chrome), mintha return false-t írtam volna? Vagy miért van ez? Console nem dob rá hibát, sem firebug.
Nem akarok már megint köcsög lenni, nem rohadékságból kérdezem, bár tudom, hogy én vagyok a beszólogatós szemét, de miért készítesz tutorialt olyan témáról, ahol még ingoványos talajon állsz? Bár megértem, hogy örülsz, ha kapsz pozitív feedbacket, de én nem mernék addig készíteni tutorialt, amíg nem tanultam meg mondjuk az alapvető webfejlesztést elősegítő eszközök használatát, az olyanokét, mint a webfejlesztő panel (Chrome Developer Tools (Ctrl+Shift+I vagy F12), Firefox beépítettje (Ctrl+Shift+I) vagy Firebug (extension-telepítés után F12), stb.), hogy kiderítsem, adott esetben mi lehet a gond.
Na, de ez volt az OFF része, válaszolok is a kérdésre.
Lenyitod az említett fejlesztői paneleket, és megtudod a választ, a linkre kattintás utáni állapotokat mutatom, mindenhol bekereteztem a lényeget:Chrome:
Network fül:
Console:
"Refused to display 'https://www.google.hu/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'."x-frame-options:SAMEORIGIN
Firefox:
"Load denied by X-Frame-Options: https://www.google.hu/ does not permit cross-origin framing."====
Átírod a http://google.hu-t http://example.com-ra, és BANG:
http://jsfiddle.net/aA8d9/2/VAGY kipróbálod ezt a saját kis tesztkörnyezetedben, ahol nem egy frame-be töltöd be, és megint csak BANG, váó, működik.
A miértek a hibaüzenetekből kideríthetők, de kérdezz, ha nem tiszta.
Javasolt olvasnivaló pl.:
https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options -
fordfairlane
veterán
Múltkor - hibásan - mondtam azt, hogy az e.preventDefault() helyett e.defaultPrevented-et kellene használni. Persze azóta már fel lettem világosítva, hogy hülye vagyok, rosszul emlékeztem valamire, ezt tudom.
Most vágom az egyik tutorial vidim, ott viszont egy <a>-ra e.defaultPrevented-et használtam, és valamiért pontosan ugyanaz történik, mintha e.preventDefault() lenne használva, tehát nem fut le az alapértelmezett esemény.
Na de miért? MDN szerint az e.defaultPrevented egy boolean értéket ad vissza arról, hogy az alapértelmezett esemény lefutása meg lett-e gátolva.
Nem lehet, hogy azzal, hogy azt hívtam meg, úgy interpretálta a böngésző (Chrome), mintha return false-t írtam volna? Vagy miért van ez? Console nem dob rá hibát, sem firebug.
Most vágom az egyik tutorial vidim, ott viszont egy <a>-ra e.defaultPrevented-et használtam, és valamiért pontosan ugyanaz történik, mintha e.preventDefault() lenne használva, tehát nem fut le az alapértelmezett esemény.
Nálam Firefoxban lefut, tehát nem ugyanaz történik. Nem is történhet ugyanaz.
-
martonx
veterán
Winjs-re gondolsz?
Az mar nagyon regota van, csinaltam is vele appot. Html+js+css.
Mar a 8.1 rc-ben is benne volt.
Kevered a windows 8-at a windows Phone 8-al.
-
Karma
félisten
Winjs-re gondolsz?
Az mar nagyon regota van, csinaltam is vele appot. Html+js+css.
Mar a 8.1 rc-ben is benne volt.
Mi? Van WP8.1 SDK RC?

-
Sk8erPeter
nagyúr
Csak halkan, mellékesen megjegyzem, hogy az event.preventDefault() _elvileg_ deprecated, event.defaultPrevented;-et kell használni (nincsenek zárójelek). Legalábbis a firebug nekem mindig ezért nyavalyog.
Hogy micsoda?
Az event.preventDefault() NEM deprecated, hogy lenne már az?! 
https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault#Notes
meg
http://api.jquery.com/event.preventdefault/Szerintem te ismét kevered a szezont a fazonnal:
"event.returnValue is deprecated. Please use the standard event.preventDefault() instead"
http://stackoverflow.com/questions/20045162/event-returnvalue-is-deprecated-please-use-the-standard-event-preventdefault
https://github.com/angular/angular.js/issues/4557
https://drupal.org/node/2170221-->
http://bugs.jquery.com/ticket/14282
http://bugs.jquery.com/ticket/14320Nagyon nem ugyanaz, hogy az event.returnValue deprecated, vagy a másik...
Ráadásul még az sem stimmel, hogy a Firebug dobná, mert a Chrome konzolja írja ki ezt, Firebug nem sír érte. (Kipróbáltam, mert pont erre emlékeztem.)
Ne vezessük félre a népet téves információval, mielőtt utánanéznénk, légyszi.
-
Sk8erPeter
nagyúr
Hello!
for (var key in JSON) {
if(parseFloat(JSON[key][3])>0 && parseFloat(JSON[key][4])>0) {
if (parseInt(key) === 1){
}
else if(parseInt(key) === Object.size(JSON)) {
}
else { }
}
}Itt három dologra kell figyelni:
1. ha a key értéke az első elem
2. ha a key értéke az utolsó elem
3. ha a key értéke más, tehát köztes számA 2. és 3. rész készen van, viszont az 1.-re nem nagyon jut eszembe semmi. Az a lényeg, hogy nem biztos, hogy az 1. vagy 2., vagy akár 3. lesz az első ami átmegy az első elágazáson. Tehát nekem az az elem kell, ami először megy át a fenti if()-en.
Hogyan kellene ezt?

Biztos velem van a baj, de én ezeken a kódokon nem tudok kiigazodni, meg nem vágom, hogy készülnek ezek, és miért így. Semmit nem fejez ki a kód az elvárt struktúráról, nincs benne megkötés, normális hibaellenőrzés, és igazából a kódból nem értem meg, mi a cél.
Igazából ha egy rövid jó leírást kaphatnánk magáról a feladatról, meg a kapott adatstruktúra konkrét felépítéséről, akkor lehet, hogy tudnánk javasolni alternatív megoldást, ami szebb kódot eredményezne. (Azt is kéne tudni, tudsz-e változtatni a kapott adatstuktúrán, vagy arra nincs lehetőséged, mert nem te rakod össze.) Ebben a formában eléggé tákolás feelingje van a dolognak. -
Jim-Y
veterán
Hat igazabol nem nagyon tudom.
Az a lenyeg, hogy amikor meghivjuk a fgvt akkor atadunk neki egy bazi nagy JSON tombot, amiben utvonal adatok vannak (kkordinatak, megnevezes, kozeli helyek, stb).
Az elso elagazas azt ellenorzi, hogy a lat es long koordinatak benne vannak-e.Ami az elso es utolso elem, az lesz a kezdopont es vegpont, a koztuk levok pedig a megallok.
Jim-Y
Jaja a flagre mar en is gondoltam. Berakok egy boolean valtozot false ertekkel, es egyszeruen azt nezem, hogy igaz-e. Akkor lesz igaz, amikor a kulso elagazasbol belep, tehat egyszer fog csak valtozni az erteke.Amúgy arra nem gondoltál, hogy csinálsz egy mondjuk Checkpoint nevű osztályt, amiben szerepelni fog minden adat egy csomópontról, illetve két példányváltozó, egy isStart, illetve egy isFinish, és a kezdő, és végpontoknál ezt simán átbillented?! Egyrészt akkor olvashatóbb lenne a kódod, másrészt szerintem logikusabb is

Ekkor kb ilyenre változna a kódod:
for (var checkpoint in checkpoints) {
if (checkpoint.lat >0 && checkpoint.lng >0 ) {
if ( checkpoint.isStart ){
}
else if( checkpoint.isFinish ) {
}
else { }
}
} -
Jim-Y
veterán
Hello!
for (var key in JSON) {
if(parseFloat(JSON[key][3])>0 && parseFloat(JSON[key][4])>0) {
if (parseInt(key) === 1){
}
else if(parseInt(key) === Object.size(JSON)) {
}
else { }
}
}Itt három dologra kell figyelni:
1. ha a key értéke az első elem
2. ha a key értéke az utolsó elem
3. ha a key értéke más, tehát köztes számA 2. és 3. rész készen van, viszont az 1.-re nem nagyon jut eszembe semmi. Az a lényeg, hogy nem biztos, hogy az 1. vagy 2., vagy akár 3. lesz az első ami átmegy az első elágazáson. Tehát nekem az az elem kell, ami először megy át a fenti if()-en.
Hogyan kellene ezt?

Hát, ha nem for in -nel csinálnád, akkor az indextől függően kimenthetnéd az első elemet, vagy használhatsz egy flaget is erre a célra.
-
martonx
veterán
Hello!
for (var key in JSON) {
if(parseFloat(JSON[key][3])>0 && parseFloat(JSON[key][4])>0) {
if (parseInt(key) === 1){
}
else if(parseInt(key) === Object.size(JSON)) {
}
else { }
}
}Itt három dologra kell figyelni:
1. ha a key értéke az első elem
2. ha a key értéke az utolsó elem
3. ha a key értéke más, tehát köztes számA 2. és 3. rész készen van, viszont az 1.-re nem nagyon jut eszembe semmi. Az a lényeg, hogy nem biztos, hogy az 1. vagy 2., vagy akár 3. lesz az első ami átmegy az első elágazáson. Tehát nekem az az elem kell, ami először megy át a fenti if()-en.
Hogyan kellene ezt?

Esetleg valami normális jsfiddle példával szemléltetnéd, hogy mit is szeretnél?
-
fordfairlane
veterán
Bocsi, hogy csak most válaszolok.
Végül sikerült megoldani future objektumokkal... vagyis... sort of.
Ez a végleges megoldás, lehet, hogy gány, de egyelőre működik, bőven elég. Tudok végre haladni.
$('.form-directions').on('submit', function () {
waypoints = [];
promises = [];
$('.waypoint').each(function () {
promises.push(geoCode($(this).val()));
});
return false;
});function geoCode(address) {
var deferred = $.Deferred();
nokia.places.search.manager.findPlaces({
searchTerm: address,
onComplete: function (data, requestStatus, requestId) {
onGeoCodingCompleted(data, requestStatus, requestId);
deferred.resolve();
},
searchCenter: map.center
});
return deferred.promise();
}Az onGeoCodingComplete függvényben nem változik semmi, csak ezt az egy plusz sort raktam bele:
if (waypoints.length == promises.length / 2) {
drivingDirections();
}Na most azért lett osztva a promises tömb kettővel, mert valamiért minden esetben a waypoints tömb elemeinek számának kétszerese volt benne. Tehát mindent 2x vett.
Tehát annyi a kérdés, hogy miért van a promises tömbben 2x annyi elem, mint a waypoints tömbben?

Tehát annyi a kérdés, hogy miért van a promises tömbben 2x annyi elem, mint a waypoints tömbben?
Globális változók. A jóég tudja ennyiből megállapítani. "use strict"
-
martonx
veterán
Bocsi, hogy csak most válaszolok.
Végül sikerült megoldani future objektumokkal... vagyis... sort of.
Ez a végleges megoldás, lehet, hogy gány, de egyelőre működik, bőven elég. Tudok végre haladni.
$('.form-directions').on('submit', function () {
waypoints = [];
promises = [];
$('.waypoint').each(function () {
promises.push(geoCode($(this).val()));
});
return false;
});function geoCode(address) {
var deferred = $.Deferred();
nokia.places.search.manager.findPlaces({
searchTerm: address,
onComplete: function (data, requestStatus, requestId) {
onGeoCodingCompleted(data, requestStatus, requestId);
deferred.resolve();
},
searchCenter: map.center
});
return deferred.promise();
}Az onGeoCodingComplete függvényben nem változik semmi, csak ezt az egy plusz sort raktam bele:
if (waypoints.length == promises.length / 2) {
drivingDirections();
}Na most azért lett osztva a promises tömb kettővel, mert valamiért minden esetben a waypoints tömb elemeinek számának kétszerese volt benne. Tehát mindent 2x vett.
Tehát annyi a kérdés, hogy miért van a promises tömbben 2x annyi elem, mint a waypoints tömbben?

Szerinted a bedobott kódod alapján honnan tudjuk?
-
Sk8erPeter
nagyúr
Hali!
Még mindig a térképes alkalmazáson dolgozom, amivel bénáztam a weblap készítés topikban. Most csak egy egyszerű kérdésem lenne. Van egy form, amit ha felad a felhasználó, kiszedi az adatokat az input mezőkből (címeket), azt pedig elküldi egy aszinkron függvénynek, ami utólag feltölt vele egy tömböt.
Jelenleg még csak két input mezővel tesztelem:
[OFF]<div class="form-group waypoint-container">
<label for="waypoints" class="col-md-1 control-label">1.</label>
<div class="col-md-11">
[/OFF] <input type="text" name="waypoints[]" class="form-control form-control-square waypoint" placeholder="Indulási hely" />
[OFF] </div>
</div>
<div class="form-group waypoint-container last-waypoint-container">
<label for="waypoints" class="col-md-1 control-label">2.</label>
<div class="col-md-11">[/OFF]
<input type="text" name="waypoints[]" class="form-control form-control-square waypoint" placeholder="Érkezési hely" />
[OFF] </div>
</div>[/OFF]Itt a form submit eseményre rakott eseménykezelőm:
$('.form-directions').on('submit', function () {
$('.waypoint').each(function () {
getDrivingDirections($(this).val());
});
return false;
});A getDrivingDirections függvény alapvetően két dolgot csinál: első körben geocode-olja (magyarul "geokód"?) a beírt adatokat, hogy GPS koordinátákkal tudjunk dolgozni. Amikor megkaptuk a koordinátákat, akkor pedig tervez rá egy útvonalat a megadott paraméterekkel. Tehát a getDrivingDirections függvény két másik függvényt hív meg: geoCode() és planRoute(). Egyelőre még csak a geoCode függvény implementálásánál tartok.
Tehát miután meghívtuk a getDrivingDirections-t, meghívódik a geoCode():
function geoCode (address) {
nokia.places.search.manager.findPlaces({
searchTerm: address,
onComplete: onGeoCodingCompleted,
searchCenter: map.center
});
}Ez végül meghívja amikor végetért az aszinkron feladat az onGeoCodingCompleted függvényt:
function onGeoCodingCompleted(data, requestStatus, requestId) {
if (requestStatus == "OK") {
var locations = data.results.items;
waypoints.push(locations[0].position);
for (var i = 0; i < waypoints.length; i++) {
console.log(waypoints[i]);
}
} else if (requestStatus == "ERROR") {
alert("hiba");
}
}Na és most jönne a tényleges kérdés. A console.log 3 objektumot ad vissza mindig, pedig csak két input mező van. Mindig az első input mezőt logolja kétszer:
Miért?
(Azért írtam le így az egész működést, mert biztosan lesznek még kérdéseim ezzel kapcsolatban, így ezt megelőlegeztem magamnak
)Nem tudom, ezt hogy lehetett ilyen bonyolultan leírni, nekem 3-szor kellett elolvasnom, hogy felfogjam.

Ez kábé a látatlanban debuggolhatatlan kategória. Mi van a waypoints tömbben, amibe pusholod a locations[0].positiont? Azután van egy for ciklus, aminek során kétszer íródik ki ugyanaz az elem, meg kéne nézni, a push előtt nincs-e már benne eleve az az elem, ami duplikálódk. Ennél konkrétabbat akkor tudnánk mondani neked, ha láthatnánk valami működő példát.
-
Jim-Y
veterán
Még egy kérdésem lenne.
Hogyan tudom figyelni, hogy mikor van meg az összes beírt megálló GPS koordinátája, tehát, hogy mikor fejeződött be az összes aszinkron feladat?
Nyilván itt az lenne a lényeg, hogy akkor lépjen csak be az útvonaltervezés függvényébe, ha már megvan az összes koordináta.
például egy boolean property segítségével. Amin most én dolgozom, ott Future-ök vannak, az aszinkron fv callbackje egy ilyen Future objektumot ad vissza amire lehet hívni .then()-t és ebben a callback-ben át lehet billenteni azt a property-t, ugyanis a then csak akkor hajtódik végre, ha az aszinkron kommunikációnak vége. Ez a te esetedben annyit jelent, hogy csinálj valahol egy, az aszinkron kommunikációra nézve globális property-t, majd sikeres response esetén billentsd át az értékét.
Egyébként javaslom keress rá a js promise-ra. Én még nem dolgoztam vele, de tudtommal jó cucc

-
Sk8erPeter
nagyúr
Hihetetlen, hogy milyen kidolgozott profi válaszokat tudsz adni, kb. mindenkinek aki legalább felig ertelmes kerdest tesz fel, le a kalappal. Tenyleg.

Hát köszi. Igyekszik a zzember. Legalább később lehet linkelgetni az ilyen válaszokat, ha valaki rákérdez, és akkor egy csomó időt megspóroltam vele, hogy a megírása kicsit pöcsölős volt.

-
csabyka666
veterán
Köszi a választ!
Átnézem ezeket, de valószínűleg még kérdezni fogok a későbbiekben.

-
Sk8erPeter
nagyúr
"Néha jó 5 perc szünetet tartani"

Ő, ezt arra mondtam annak idején, ha valaki gyökérségeket kérdez...
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Sk8erPeter
nagyúr
nézd meg jobban.
Valamennyire észre lehet venni azt a szaggatást, amiről beszél, a monitorok tetejét ha megnézed, egy picit mintha ottmaradna, némi késéssel követi csupán.Na most vagy én nem látom a szaggatást, vagy nem tudom. Videó: [link]
============================================================================megpróbálhatnád végre értelmesen leírni
Igen, tudom, eléggé "semmit" nem adtam információ gyanánt.
Most nincs nagyon lelki erőm átbootolni Windows-ba, meg egy elég nagy projektet nyomogatok, de holnapután szvsz megnézem pontosan. Leginkább abból indultam ki, hogy azt hittem valamiért egy illuminált pillanatomban, hogy nincsenek globális metódusok (amúgy JS-ben is metódusnak hívják magyarul a function-öket, vagy funkciónak? - Mondjuk a funkció szó szerintem ilyen kontextusban nagyon ronda), ezért kérdeztem rá, majd jutottam arra a konklúzióra, hogy a VS hülye. De most meg megint úgy vagyok, hogy a VS valszeg sokkal okosabb, mint én, így nagyon sok esélyt látok arra, hogy én vagyok a hülye már megint és szarul állítottam be valamit. Na, majd megnézem!(#3849) martonx
Hozzáteszem VS2012 - 2013 már alapból tartalmazza a jquery-s intellisense-eket.
A 2013 még knockout-ot, meg mittudomén még mi minden js libet támogat intellisense-el alapból.Na igen, ez meg a másik. Mondom, hogy én vagyok a hülye!

Szerintem a videódon is teljesen jól látszik az a minimális "röcögés" a slidernél, amiről beszéltem.
A hibaüzenetekkel kapcsolatban: igazából ilyenkor szerintem mindig csak az a pár (másod)percnyi Guglizás marad ki az életedből, amivel megkönnyítenéd a dolgodat.

"azt hittem valamiért egy illuminált pillanatomban, hogy nincsenek globális metódusok"
Hát gondold végig, hogy működhet. Ha include-olsz valamit, és az nincs körbeburkolva valamivel, ami "gátolja" az elérést, akkor annak a scope-jában eléred az adott függvényt/metódust (utóbbit az objektumon keresztül!)."amúgy JS-ben is metódusnak hívják magyarul a function-öket, vagy funkciónak? - Mondjuk a funkció szó szerintem ilyen kontextusban nagyon ronda"
Function = függvény (matematikai és programozási kontextusban mindig ezt jelenti, nem pedig "funkció"!!).
Ezek szerint ott vannak fogalmi zavaraid, hogy egyáltalán mi az a function (FÜGGVÉNY) és mi az a method (metódus). Azért ez is eléggé alapvető kérdés, érdemes kérdezés előtt ismét Guglizni.
Alapvetően eléggé hasonló fogalmat jelentenek, mind a függvény, mind a metódus kb. egy adott programkód egységbe zárt részlete, mindkettőnek lehet visszatérési értéke, mindkettőnek lehetnek paraméterei, de legalább egy igen fontos különbség van, hogy a metódusok mindig objektumokhoz kötődnek, tehát utóbbi fogalom elsősorban objektumorientált programozás kontextusában jön elő. Még egy fontos különbség, hogy a metódus eléri az adott objektum adatait (változók, egyéb metódusok, stb.; nyilván egyébként pl. öröklésnél csak azt, amihez van hozzáférése!), egy függvény nem biztos, hogy kívülről hozzáfér egy objektum adataihoz.Remélem, tiszta.
-
Sk8erPeter
nagyúr
Na, akkor nem én vagyok a hülye
Az alapján tettem fel a kérdést, hogy a Visual Studio dobálgatta nekem a Build Error-okat, hogy ismeretlen function-öket hívok meg. De akkor ezek szerint a Visual Studio (2013 Pro) nem tudja kezelni ezeket? Vagy én csinálok valamit nagyon rosszul? Na megnézem mégegyszer.. 
-
Sk8erPeter
nagyúr
Na, akkor nem én vagyok a hülye
Az alapján tettem fel a kérdést, hogy a Visual Studio dobálgatta nekem a Build Error-okat, hogy ismeretlen function-öket hívok meg. De akkor ezek szerint a Visual Studio (2013 Pro) nem tudja kezelni ezeket? Vagy én csinálok valamit nagyon rosszul? Na megnézem mégegyszer.. 
Ha ilyen problémád van, lehetőleg megpróbálhatnád végre értelmesen leírni, milyen hibát tapasztalsz, milyen hibaüzeneteket kapsz, mert tök feleslegesek az ilyen oda-visszaírogatások, hogy aztán a végén kiderüljön, hogy igazából ezt az egészet kettő darab hsz.-ben is meg lehetett volna oldani. Tulajdonképpen most is csak ilyen odavetett félinfókat írogattál (fingunk sincs, hogyan van beállítva a projekted, meg hasonlók), úgyhogy a Visual Studiós problémádat sem tudjuk ennyiből megoldani.
(#3844) trisztan94 :
nézd meg jobban.
Valamennyire észre lehet venni azt a szaggatást, amiről beszél, a monitorok tetejét ha megnézed, egy picit mintha ottmaradna, némi késéssel követi csupán. -
don.racz
csendes tag
Nálam egyáltalán nem szaggat, semmilyen böngészőben. (Safari, Chrome, FF, Opera)
Konfig:
Macbook Pro, OSX 10.9
i5 (2 mag), 4Gb ram, 1280x800Neked milyen konfigod van?
Hát ez van, bőven meg kéne vele birkóznia

Win 8
AMD A8-5600K
4GB RAM
1024x768 -
Sk8erPeter
nagyúr
Na erre nem is gondoltam
Köszi!Más:
Másik, a HTML kódban include-olt JS fájlban lévő function-öket nem tudok elérni sehogy, ugye?Van egy default.html fájlom, abban így néz ki a két <script> tag:
<!-- UI logikája -->
<script type="text/javascript" src="/js/default.js"></script>
<!-- Térkép logikája -->
<script type="text/javascript" src="/Scripts/V7ClientSideClustering.js"></script>
<script type="text/javascript" src="/js/mapControl.js"></script>Tehát pl. a mapControl.js-ből elérni a default.js-ben lévő showNavigation(); function-t.
Már miért ne tudnád elérni "sehogy"?

Szerinted például a jQuery függvényeit, Google Maps API metódusait hogyan éred el? Gondóóóókozzá'!
Na jó, segítek: először include-olod ezek scriptfájljait, utána már tudod használni az abban globálisan elérhető változókat és függvényeket. Tehát ha "globális" függvényről van szó, simán eléred a másik fájlból.Anonymous closure-ökkel*, és más módszerekkel persze lehet "priváttá" tenni a függvényeket, de úgy oldod meg, ahogy jólesik.
*: hasznos olvasnivaló:
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html#anonymous_closures -
Karma
félisten
Sziasztok!
Egy Windows 8.1 Store alkalmazást készítek a WinJS motorral, HTML + CSS segítségével. Egy térképes alkalmazás lesz, készen is van, csak egy dolog idegesít.
Ez a kód beméri a felhasználó pozícióját, majd ránagyít és a térkép középpontja lesz:
function getUserPosition() {
// bemérjük a felhasználó pozícióját
var geolocator = new Windows.Devices.Geolocation.Geolocator();
geolocator.getGeopositionAsync().then(function (loc) {
var mapCenter = new Microsoft.Maps.Location(47.165733, 19.416574);
mapCenter.latitude = loc.coordinate.latitude;
mapCenter.longitude = loc.coordinate.longitude;
var pin = new Microsoft.Maps.Pushpin(mapCenter, { icon: "/Images/user.png", height: 39, width: 25});
map.entities.push(pin);
map.setView({ center: mapCenter, zoom: zoom });
});
}Teljesen rendben működik, viszont az a bajom vele, hogy nem írja semmi a felhasználónak, hogy éppen a pozícióját keressük (nyilván akkor, amikor éppen bemérés alatt áll).
Tehát ami kellene, az egy sima üzenet, hogy "Pozíció bemérése folyamatban...". Van valakinek valami tippje?
A getGeopositionAsync előtt kiraksz egy feliratot, a callbackben meg leveszed, és kész is a chocapic

-
Sk8erPeter
nagyúr
A document ready-n kívülre dolgot úgy értettem, hogy egy sscript fajlon belül van egy document ready és az után jön rögtön az onload. Tehát kb így:
Document ready{
Sok jquery + feltöltő oldali code mirror hívás
}
Window onload {
Megjelenítő oldali Codemirror hívás
}Ezt hogy kell szakszerűen mondani akkor?
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
nagyúr
No, leellenőriztem mindent:
Minden be van töltve, nem ütközik semmilyen más kóddal, próbáltam külön fájlba csak a jQuery nélküli codemirror scripteket berakni, úgy is ezt produkálja. 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.Így oldottam meg, bár eléggé gányolós megoldás, működik, jelenleg ennyi nekem elég:
$(document).ready(function(){
// ... sok más jquery
var UploadPageCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBody'), {
mode: "javascript",
theme: "default",
lineNumbers: true
});
});
window.onload = function() {
var ReadOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBodyReadOnly'), {
mode: "javascript",
theme: "default",
lineNumbers: true,
readOnly: true
});
}Tehát a feltöltő oldalon lévő codemirrort document ready-be raktam, a megjelenítő oldalon lévőt, a document ready-n kívülre, window onload-ba.
Lehet megnézem az ACE editort

"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.
-
martonx
veterán
No, leellenőriztem mindent:
Minden be van töltve, nem ütközik semmilyen más kóddal, próbáltam külön fájlba csak a jQuery nélküli codemirror scripteket berakni, úgy is ezt produkálja. 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.Így oldottam meg, bár eléggé gányolós megoldás, működik, jelenleg ennyi nekem elég:
$(document).ready(function(){
// ... sok más jquery
var UploadPageCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBody'), {
mode: "javascript",
theme: "default",
lineNumbers: true
});
});
window.onload = function() {
var ReadOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBodyReadOnly'), {
mode: "javascript",
theme: "default",
lineNumbers: true,
readOnly: true
});
}Tehát a feltöltő oldalon lévő codemirrort document ready-be raktam, a megjelenítő oldalon lévőt, a document ready-n kívülre, window onload-ba.
Lehet megnézem az ACE editort

Szia!
Azért ezt illett volna egy külön függvénybe kiemelni, pláne ha még be is teszed ide a kódodat
![;]](//cdn.rios.hu/dl/s/v1.gif)
Nem vagyok éppen egy refaktorálás megszállott, de ez a kód még így is nagyon csípi a szemem. -
Sk8erPeter
nagyúr
http://screencast.com/t/3lIh3uIDFT3
Itt az említett videó.
Tényleg nagyon nagyon sajnálom a tripla hsz-t, nem fordul elő többet!

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! -
trisztan94
őstag
No, megjavult az előző bejegyzésben történt update probléma,minden böngészőben megjelenik a feltöltő oldalon a CodeMirror, nem tudom miért csinálta, ctr-f5-tel újra bejött. Még mindig rossz a megjelítő oldalon though.
Bocsi a felesleges hsz-ért!
Update 2: (
)
Nos, beraktam a document ready-n kívülre amit írtál Sk8terPeter, így most MŰKÖDIK a megjelenítő oldalon!DE
Most meg a feltöltő oldalon nem jelenik meg....
Mindjárt csinálok egy bemutató videót, hogy lássátok.http://screencast.com/t/3lIh3uIDFT3
Itt az említett videó.
Tényleg nagyon nagyon sajnálom a tripla hsz-t, nem fordul elő többet!

-
trisztan94
őstag
$(document).ready-be van rakva az egész script fájl. Ide rakom a jQuery kódokat is. Próbáltam onLoad-dal, úgy egyik oldalon sem jelenik meg a bővítmény

Update:
Nos, most teljesen meghalt a dolog.. átírtam ugye onLoad-ra, láttam, hogy nem jó, vissza Undo-ztam az eredetire és sehol sem jelenik meg. Mi a f*sz?? (már bocsánat, nagyon felhúzott)Az is gáz volt, hogy eddig ami megjelent, az is csak chrome-ban jelent meg, opera, firefox, ie-ben nem.
Most vagy én csinálok valamit nagyon szarul vagy nem tudom. Így vannak include-olva a layout fájlban:
<link href="~/Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="~/Content/codemirror.css" rel="stylesheet" type="text/css" />
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/doesExist.js"></script>
<script src="~/Scripts/jquery-ui-1.8.20.js"></script>
<script src="~/Scripts/modernizr-2.5.3.js"></script>
<script src="~/Scripts/Codemirror/codemirror.js"></script>
<script src="~/Scripts/Codemirror/mode/javascript/javascript.js"></script>
<script src="~/Scripts/Script.js"></script>Jó sorrendben raktam be őket, nein?
No, megjavult az előző bejegyzésben történt update probléma,minden böngészőben megjelenik a feltöltő oldalon a CodeMirror, nem tudom miért csinálta, ctr-f5-tel újra bejött. Még mindig rossz a megjelítő oldalon though.
Bocsi a felesleges hsz-ért!
Update 2: (
)
Nos, beraktam a document ready-n kívülre amit írtál Sk8terPeter, így most MŰKÖDIK a megjelenítő oldalon!DE
Most meg a feltöltő oldalon nem jelenik meg....
Mindjárt csinálok egy bemutató videót, hogy lássátok. -
Sk8erPeter
nagyúr
Érdekes módon itt működik [link], pedig ugyan azt a kódod raktam bele. Lehet, hogy az a baja, hogy külön fájlba van? ASP.net Razorba van az oldal, van egy layout fájl, abba vannak berakva src-be a fájljai, a felöltő oldal is egy content fájl ill. a megjelenítő oldal is.
De akkor miért működik csak a feltöltő oldalon?

Próbáltam inline beírni a megjelenítő oldalon, de úgy sem jó. Layout fájlba is próbáltam inline, úgy sem, de mindenképp szeretném az összes JS-et külön fájlban tárolni az olvashatóság miatt.Mitől lehet ez?
"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
nagyúr
Se firebug, se semmi nem ír hibát. Jsfiddle-re sajnos nem tudom felrakni, mert kellenek a fájljai

Fogalmam sincs mitől lehet ez. Az összes böngésző alatt ezt csinálja.
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
nagyúr
Sziasztok!
A CodeMirror bővítményről szeretnék kérdezni.
Két külön lapra szeretném beágyazni.
Az első egy kódrészlet feltöltő oldal, mely rendesen működik is, így néz ki most jelenleg. Mint látható tökéletesen megjelenik, nincs vele probléma.Itt a JS kódja (külső script fájl)
var UploadPageCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBody'), {
mode: "javascript",
theme: "default",
lineNumbers: true
});Itt pedig a HTML kódja
<textarea rows="15" cols="70" name="CodeSnippetBody" id="CodeSnippetBody" @Validation.For("CodeSnippetBody")></textarea>
A második oldal egy kódrészlet megjelnítő lap lenne, melyen ugyanúgy CodeMirrorba jelenik meg, de ReadOnly attribútumot igazra állítva csak megjelenítés célt szolgálna. Nos, az valamiért nem akar működni, pedig másol+beillesztéssel csináltam meg még egyszer a kódod. A furcsa benne az, hogy ha ennek a textarea-nak az ID-jét átállítom arra ami a feltöltő oldalon volt (tehát CodeSnippetBody-ra), akkor megjelenik, de ha saját id-t adok neki nem.
Így néz ki a JS kódja (ugyan az a külső js fájl):
var ReadOnlyCodeMirror = CodeMirror.fromTextArea(document.getElementById('CodeSnippetBodyReadOnly'), {
mode: "javascript",
theme: "default",
lineNumbers: true
});Így pedig a HTML:
<textarea id="CodeSnippetBodyReadOnly">@code["CodeSnippetBody"]</textarea>
Így jelenik meg, tehát hibásan
Ha átállítom erre a HTML-jét, akkor viszont megjelenik, de akkor ugye nem tudom ezt külön testreszabni, hogy ReadOnly módba legyen.
<textarea id="CodeSnippetBody">@code["CodeSnippetBody"]</textarea>
Ekkor így jelenik meg.
Mi lehet ezzel a probléma, mit csinálok rosszul?
Köszönöm előre is

T
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.

-
nobela
senior tag
Köszi, csekkolom!
Szerk: hehe, Safari/OSX alatt bizony darabjaira esik...
A többi viszont úgy tűnik jó. Nagyon hasznos oldal!
-
Sk8erPeter
nagyúr
Szervusztok!
Van egy file inputom, alatta egy gomb, ha rámész 'appendol' még egy inputot alá. A classuk ezeknek '.otherpic'. Na most azt szeretném, hogy ha 1 van, ugye alapból, akkor fölötte a gomb, amivel egyet el lehet távolítani (tehát hogy eggyel kevesebb kép legyen ) ne látszódjon, ha 2 vagy több van akkor viszont igen.
Itt a jquery-m rá:
$('#addfile').on('click',function(){
var count = $('.otherpic').length;
if (count == 2)
{
alert("hey mr busta");
}
});// most alert van a kód helyett, de a lényeg lejön.
Szóval a fölötte lévő gomb alapból display none.Amúgy azt hogy csinálom, hogy elvegyen eggyet, szóval az append ellentéte?
Köszi!
Még korábban csináltam egy demót formelemek klónozásáról, itt meg tudod tekinteni:
http://jsfiddle.net/Sk8erPeter/RqYYj/Ezt ajánlom még:
SheepIt! Plugin - Dynamic form cloning with Jquery
Elég ígéretesnek tűnik. -
Sk8erPeter
nagyúr
Énis megtaláltam ezt, de nem tudtam leszedni :S
De köszi,működik amit írtál
Örök hálám!Szívesen!
-
Sk8erPeter
nagyúr
Sziasztok!
Egy <h1>-et kéne villogtatni, a színét. Stackoverflowon láttam több megoldást is, egyik se működik. Próbáltam ajaxos oldalon meg ajax nélkülin is.
itt van az egyik
itt a mostani kódom:
html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta charset="utf-8"/>
</head>
<body>
<div id="flash"><h1 id="asd">Villogjá'</h1></div>
<input type="button" id="button" value = "Let the medzsik begin"/>
<script src="../js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../js/flash.js" type="text/javascript"></script>
</body>
</html>jquery:
$("#button").click(function () { $('#asd').effect("pulsate", { times:3 }, 2000); });
Ez működik, kb. 2 percet vett el:
http://jsfiddle.net/Sk8erPeter/Yca4Z/Innen: jQuery Blink Plugin
A kódja igazából ennyi:
(function($)
{
$.fn.blink = function(options)
{
var defaults = { delay:500 };
var options = $.extend(defaults, options);
return this.each(function()
{
var obj = $(this);
setInterval(function()
{
if($(obj).css("visibility") == "visible")
{
$(obj).css('visibility','hidden');
}
else
{
$(obj).css('visibility','visible');
}
}, options.delay);
});
}
}(jQuery)) -
Sk8erPeter
nagyúr
Istenkirály vagy, köszi szépen!
Tökéletesen működik!Ha veszel valamit tőlem hardveraprón, kapsz kedvezményt a sok segítségért!
Mégegyszer köszi!Szívesen!

Na, végre egy jó hír itt PH!-n!
-
Sk8erPeter
nagyúr
Nem ezzel kapcsolatban, de elakadtam..
<?php foreach($dataArray as $data) { ?>
<div class="visible">
<?php echo $data[0] . "<br/><center><a href='#' class='story_show'>Teljes Történet</a></center>"; ?>
</div>
<div class="hidden" style="display:none;">
<?php echo $data[1]; ?>
</div>
<?php } ?>Ez egy php txt file listázás, a 'visible' az egy 300 katakteres 'előnézete' a teljes történetnek. Na most az <a>-ra kattintva kéne, hogy bejöjjön a teljes, a 'hidden' rész.. itt a jQuery-m rá:
$('story_show').on('click', function () {
$('.hidden').css('display', 'inline');
});Életem első jQuery kódja nem működik


Amúgy ajaxos az oldal, lehet interferenciál valamit. Netbeans progival írtam, szintaktikai hibát nem jelez. Ja, és ráadásul az <a> 2x jelenik meg (mert ugye most egy filem van amit kilistáz) Egyszer az egész felett, másodszor meg a jó helyen.Köszi mester!

Gondolom valami ilyesmire gondolsz:
http://jsfiddle.net/Sk8erPeter/KE8LS/Lehet, hogy lehetne még gyönyörűzni, de jelenlegi agyi állapotomban, félhullaként erre futotta.

-
Sk8erPeter
nagyúr
Rendben, utánanézek majd, megcsinálom úgy.
Az előző hsz-edet nem jelezte ki
Azóta sem sikerült megcsinálni, gyorsan megcsinálom azzal, köszi!

Szívesen, kérdezz, ha valami nem tiszta!
-
Sk8erPeter
nagyúr
Sziasztok!
Ide írtam, de csak jQuery-s választ kaptam. Valaki kitudna segíteni egy good ol' javascript javítással ?


T
Teljesen egyetértek az ott hozzászólóval, iszonyat ocsmány lenne sima JavaScriptben egy AJAX-hívás, felesleges ezzel szívatnod magad, amikor ilyen jó library-k vannak, mint a jQuery és a többi hasonló. Persze ha nagyon szorgalmas vagy, akkor felfedezheted a spanyolviaszt.

Amúgy ezelőtt én is írtam neked egy választ, arra még nem reagáltál.

-
Sk8erPeter
nagyúr
Sziasztok!
Olyat szeretnék, hogy van egy file inputom, megcsinálva, hogy egy textboxban jelenjen meg, igazából nehéz elmagyarázni. Az elérési útvonal egy text inputban van, a lényeg az lenne, hogy amíg üres, tehát nem lett fájl tallózva, addig display:none; legyen, ha került bele adat, tehát a tallózás megvolt, akkor meg display:inline;
itt a html:
<input type="text" id="fileName" class="file_input_textbox" readonly="readonly">
<div class="file_input_div">
<input id="fileInputButton" type="button" value="Tallózás" class="file_input_button" />
<input type="file" class="file_input_hidden"
onchange="javascript: document.getElementById('fileName').value = this.value"
onmouseover="document.getElementById('fileInputButton').className='file_input_button_hover';"
onmouseout="document.getElementById('fileInputButton').className='file_input_button';" /></div>Szóval a legfelső az amiről beszéltem.
itt a javascript:
window.onload = function() {
var textbox = document.getElementById('fileName');
if (textbox.value == null)
{
textbox.style.display = 'none';
}
else
{
textbox.style.display = 'inline';
}
}Köszönöm szépen!

Szerintem a File Style Plugin for jQuery-ből meríthetnél ötletet, ez egy külön szövegdobozt hoz létre a tallózott fájl elérési útjának megmutatására.
Korábban készítettem róla egy demót jsFiddle-re, itt ha megnyomod a gombot, akkor átvált az új stílusra:
http://jsfiddle.net/Sk8erPeter/JEVgF/Szerk.:
egyébként itt a pluginben igazából ennyi a "nagy" trükk, ha ezt megnézed:var filename = $('<input class="file">')
.addClass($(self).attr("class"))
.css({
"display": "inline",
"width": settings.width + "px"
});
// .........
$(self).bind("change", function() {
filename.val($(self).val());
});(A kipontozott résznél van még egy-két dolog.)
Így tehát amikor kiválasztod a fájlt, akkor a filename nevű inputelem (ami egy textfield) értéke megváltozik a fájl elérési útjára.
Itt a "self" az a fájltallózó inputelem lesz, amire beállítod a File Style Plugint.
Persze ahhoz, hogy ezt jobban értsd, valamennyire a jQuery alapjaival tisztában kell lenni.
Ha ez megvan, onnantól elég könnyű megoldani a feladatodat. -
Jim-Y
veterán
Az ajax meg főleg magas nekem
Igazából egy helyen találtam róla leírást, a www.w3schools.com-on, de ott nem magyarázza el rendesen, vagy legalábbis én nem értem meg, pedig többször is elakartam kezdeni.Pl, szerintem egy ilyen sokkal átláthatóbb mint a te verziód, csak simán másold ki a tartalmat plaintextként egy html fileba:
-
Jim-Y
veterán
A tinyboxosat megoldottam, nem volt még létrehozva a guest_user.php file

A másiknak itt a kódja:
<?php ?>
<!doctype html>
<html lang="hu">
<head>
<title>Cím</title>
<link href='http://fonts.googleapis.com/css?family=Niconne&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
<link type="text/css" rel="stylesheet" href="../css/soon.css"/>
</head>
<body>
<form method="POST" action="register.php">
<input type="text" id="name" value="Vezetéknév - *Nem Publikus" class="elemek" name="name" /><br />
<input type="text" id="surname" value="Keresztnév - *Nem Publikus" class="elemek" name="surname" /><br />
<input type="text" id="username" value="Felhasználónév" class="elemek" name="user"/><br />
<div id="wrongemail" style="display: none; border:1 px solid red; background-color:white;">Nem Egyezik a Két e-mail Cím!</div>
<input type="text" id="email" value="e-mail - *Nem Publikus" class="elemek" name="email"/><br />
<input type="text" id="email_verify" value="e-mail megerősítése" class="elemek" onkeyup="verifyemail()"/><br />
<input type="password" id="password" class="elemek" name="password"/><br />
<input type="password" id="password_verify" class="elemek" onkeyup="verifypassword()"/><br />
<span>Elolvastam és elfogadom a <a href="../html/agreement.html">felhasználási feltételeket</a></span>
<input type="checkbox" id="agreement" /><br /><br />
<input type="submit" class="belepes" value="Regisztráció"/>
</form>
<script type="text/javascript">
function verifypassword()
{
var pass1 = document.getElementById("password").innerHTML;
var pass2 = document.getElementById("password_verify").innerHTML;
if(pass1 != pass2)
{
document.getElementById("wrongpass").style.visibility="visible";
}
else
{
document.getElementById("goodpass").style.visibility="visible";
}
}
function verifyemail()
{
var email1 = document.getElementById("email").innerHTML;
var email2 = document.getElementById("email_verify").innerHTML;
if(email1 != email2)
{
document.getElementById("wrongemail").style.display="block";
}
else
{
document.getElementById("goodemail").style.display="block";
}
}
</script>
</body>
</html>
Közben megváltoztattam a visibility-t display-re

Meg, már ne is haragudj, de html-beli alap hiányosságok is vannak, nem csoda, hogy nem megy, ha ilyet írsz:
<input type="text" id="email" value="e-mail - *Nem Publikus" class="elemek" name="email"/><br />
majd:
var email1 = document.getElementById("email").innerHTML;
-----------------------------------------------
Csinálj egy táblázatot, a user töltse ki, majd a Submit gombbal ajax segítségével küldd el az értékeket a php fájlnak, vagy még submit előtt végezz ellenőrzéseket, vagy azt is csinálhatod, hogy a kód csak küldi az adatokat, és a php dolgozza fel őket, ha valami nem ok, akkor a php jelzi azt a kódnak, a kódban meg mondjuk pirossal bekeretezed ami rosszul lett kitöltve.
-
Jim-Y
veterán
Így se jó.
Nem lehet, hogy az a baja, hogy ez az egész register.php egy tinyboxon belül helyezkedik el?Én nem ismerem a tinyboxot, de az egész úgy zavaros ahogy van, szerintem egy kicsit még tanulnod kéne a dolgokat, pl szánj 1-2 napot a jquery-re, és akkor kevésbé zavaros, effektív kódot tudsz majd írni, remélhetőleg

Pl az előbbi is így már értelmesebb lenne.. [link]
-
Jim-Y
veterán
A tinyboxosat megoldottam, nem volt még létrehozva a guest_user.php file

A másiknak itt a kódja:
<?php ?>
<!doctype html>
<html lang="hu">
<head>
<title>Cím</title>
<link href='http://fonts.googleapis.com/css?family=Niconne&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
<link type="text/css" rel="stylesheet" href="../css/soon.css"/>
</head>
<body>
<form method="POST" action="register.php">
<input type="text" id="name" value="Vezetéknév - *Nem Publikus" class="elemek" name="name" /><br />
<input type="text" id="surname" value="Keresztnév - *Nem Publikus" class="elemek" name="surname" /><br />
<input type="text" id="username" value="Felhasználónév" class="elemek" name="user"/><br />
<div id="wrongemail" style="display: none; border:1 px solid red; background-color:white;">Nem Egyezik a Két e-mail Cím!</div>
<input type="text" id="email" value="e-mail - *Nem Publikus" class="elemek" name="email"/><br />
<input type="text" id="email_verify" value="e-mail megerősítése" class="elemek" onkeyup="verifyemail()"/><br />
<input type="password" id="password" class="elemek" name="password"/><br />
<input type="password" id="password_verify" class="elemek" onkeyup="verifypassword()"/><br />
<span>Elolvastam és elfogadom a <a href="../html/agreement.html">felhasználási feltételeket</a></span>
<input type="checkbox" id="agreement" /><br /><br />
<input type="submit" class="belepes" value="Regisztráció"/>
</form>
<script type="text/javascript">
function verifypassword()
{
var pass1 = document.getElementById("password").innerHTML;
var pass2 = document.getElementById("password_verify").innerHTML;
if(pass1 != pass2)
{
document.getElementById("wrongpass").style.visibility="visible";
}
else
{
document.getElementById("goodpass").style.visibility="visible";
}
}
function verifyemail()
{
var email1 = document.getElementById("email").innerHTML;
var email2 = document.getElementById("email_verify").innerHTML;
if(email1 != email2)
{
document.getElementById("wrongemail").style.display="block";
}
else
{
document.getElementById("goodemail").style.display="block";
}
}
</script>
</body>
</html>
Közben megváltoztattam a visibility-t display-re

A <script> ... </script> részt a head részbe tedd!
-
Jim-Y
veterán
Azt is csináltam, nem jó

Hát ugye, rámegy a nevére, kidobja az adatlapját, mennyi kredite van stb, ha vendég fiókkal van bejelentkezve akkor meg azt írja, hogy itt lenne ez meg az.edit:
Végülis annyi változást láttam, hogy az oldal scrollbarja kisebbedik, de nincs tartalom.edit 2:
onkeyup="javascript:verifyemail();" ---> onkeyup="verifyemail()"Szintén semmi változás.
Nem tudsz kicsit többet mutatni a kódból? mert amennyit megadtál, abból elég nehéz rájönni a hibára.
"Szintén semmi változás" a hiba az ön készülékében, vagy legalábbis az egyéb kódjaiban van, ugyanis amit linkeltem az működik -> [link]
-
Jim-Y
veterán
Na, meg van egy másik problémám is, tinyboxxal.
if (document.getElementById("adatlap").innerHTML != "Vendég")
{
T$('adatlap').onclick = function(){TINY.box.show('../php/user.php',1,500,400,1)}
}
else
{
T$('adatlap').onclick = function(){TINY.box.show('../php/guest_user.php',1,500,400,1)}
}Ugye, ha rendesen bejelentkezünk, akkor ottvan a felhasználónév, rákattintasz, bejön rendesen a tinybox. Ezzel semmi probléma nincs. Az else ággal van az, hogy ha Vendég van odaírva, tehát vendég fiókkal léptél be, akkor meg nem csinál semmit.

Gyűlölöm a PHP-t, de az legalább működik


Talán ki kéne cserélned az else ágat erre:
if (document.getElementById("adatlap").innerHTML != "Vendég")
{
T$('adatlap').onclick = function(){TINY.box.show('../php/user.php',1,500,400,1)}
}
else if(document.getElementById("adatlap").innerHTML == "Vendég")
{
T$('adatlap').onclick = function(){TINY.box.show('../php/guest_user.php',1,500,400,1)}
}
else { ... }Amúgy nem tudom, hogy mit akarsz csinálni, de amondó vagyok, hogy egyszerűbben is meg lehetne

-------------onkeyup="javascript:verifyemail();" ---> onkeyup="verifyemail()"
-
Jim-Y
veterán
így se jó

A Jquery-n már énis gondolkoztam, csak mivel gyűlölöm a PHP-t, láttam, hogy az is tele van dollár jelekkel, így bele sem kezdtem

-
Jim-Y
veterán
Sziasztok!
Egy egyszerű probléma lenne, mégsem tudok rájönni mi a baj
html:
<div id="wrongemail" style="visibility: hidden; border:1 px solid red; background-color:white;">Nem Egyezik a Két e-mail Cím!</div>
<input type="text" id="email" value="e-mail - *Nem Publikus" class="elemek" name="email"/><br />
<input type="text" id="email_verify" value="e-mail megerősítése" class="elemek" onkeyup="javascript:verifyemail();"/><br />javascript:
function verifyemail()
{
var email1 = document.getElementById("email");
var email2 = document.getElementById("email_verify");
if(email1.Value != email2.Value)
{
document.getElementById("wrongemail").style.visibility="visible";
}
else
{
document.getElementById("goodemail").style.visibility="visible";
}
}

A Javascript case sensitive nyelv, így a Value != value -val. üdv
Egyébként, erősen javaslom, hogy tanuld meg a jquery használatát, mindjárt feldobom ugyanezt csak jquery-vel.
-
Sk8erPeter
nagyúr
Ajjaj, akkor rohanok.
Szívesen! 
-
Sk8erPeter
nagyúr
Hát az a baj, hogy igaából csak ezzel néz ki jól az oldal
valami ötlet hogy lehetne megoldani?
Itt is vannak egyediek, választhatnál hasonlót:
Google Web FontsKönnyű beüzemelni is.
-
Peter Kiss
őstag
Sziasztok!
Olyat lehet csinálni, hogy js sütibe letölt egy betűtípust a felhasználó gépére?
Én Brush Script Std-vel csináltam az egész oldalt, meglepetésemre windows alatt times new romannal üdvözölt..Köszi

CSS 3 felé indulj, de egyébként legtöbbször nem szerencsés, tök ismeretlen betűtípussal zúzni, érdemesebb olyanokra építeni, ami jó eséllyel megvan mindenkinél, vagy legyen egy használható backup megoldás (egyszerre több font-family-t is használhatsz valamire).
Új hozzászólás Aktív témák
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Hihetetlen Gaming PC brutális specifikációkkal! A dán Topdata.dk IT-cég által összerakva
- 2.5" 100% noti HDD-k Western Digital, Seagate 320Gb (3k) +1Tb (15k) van 1db SSHD is (15k)
- Lenovo P16s gen2 16" //Core i7 1360P // Nvidia RTX A500 4GB GDDR6 // 16Gb /512GB SSD/ gyári garancia
- Micron és Samsung 32GB ram 1 x 32GB 3200Mhz vagy 2 x 16GB 2666Mhz - több db elérhető
- Lenovo M720q Mini PC - Core i3 8100T vagy Core i5 8500T- 8GB vagy 16GB ram - 256/512GB SSD - több db
- Újszerű Apple MacBook Air 13.6" - M2, 16GB/256GB - 23 ciklus - 100% akku - Éjfekete -HUN - 3 év gari
- Bomba ár! Lenovo TP Yoga 370 - i5-7G I 8GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Gari
- HIBÁTLAN iPhone 14 128GB Purple -2 ÉV GARANCIA - Kártyafüggetlen, MS5548
- Új állapotban! Lenovo ThinkPad T14 Gen 3 i5-1245/16gb ram/256 ssd FHD+ garancia
- ÚJ Lenovo Legion Pro 7 - Intel Core U9 275HX, 64GB, 2TB, RTX 5080(16GB), OLED 240Hz
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest














)

Azóta sem sikerült megcsinálni, gyorsan megcsinálom azzal, köszi!
