- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen ÚJ notebookot vegyek?
- Milyen TV-t vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- Fujifilm X
- Projektor topic
- Amlogic S905, S912 processzoros készülékek
- Fejhallgató erősítő és DAC topik
-
Fórumok
PROHARDVER! - 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
-
v2izzy
tag
Nem egészen, ha ezt tenné, szerintem az összes callback hívásnál a path az utolsó név lenne.
Itt egy példa, ahogy próbáltam rekonstruálni a dolgot a WinJS alapján
Hmm, igaz.
Gondoltam rá, hogyha sokáig nem fut le a függvény akkor addigra megváltozik, de logikusnak tűnt a leírásom (mert szerintem úgy jó lehetne).
Hát egy megoldás rá, hogy .bind-al adod neki az értéket this-ben viszont így a függvény this-je ugye eltűnik, de ha ez nem gond, akkor megoldás lehet. példa
-
v2izzy
tag
Sziasztok,
Windows 8 appot fejlesztek javascriptben és kéne egy kis segítség, talán úgy is meg tudja valaki válaszolni, ha nem ismeri a Win-js-t.
Azt szeretném, hogy az összes filet végignézem a music mappában és egy listába kiírom a file nevét, az előadót és a címet. A gond az, hogy a Windowsban szinte minden függvény aszinkron lett, ami egyrészt jó, másrészt emiatt most elakadtam.
A lényeg, hogy a három szükséges adatból a filenév (vagy az útvonal) a resultLibrary[i].path -al szinkron elérhető, míg az ID3 tagből nyert információk csak aszinkron módon a callback függvényben. De a callback függvényben már nem tudom, hogy melyik fájlhoz tartozott az infó. Mi a módja ilyenkor annak, hogy összekapcsoljam a kettőt? Legjobb lenne, ha a callback függvénynek át tudnám adni a path-t, de nem sikerült.
var musicLibrary = Windows.Storage.KnownFolders.musicLibrary;
musicLibrary.getFilesAsync().then(function (resultLibrary) {
for (var i = 0; i < resultLibrary.length; i++) {
var path = resultLibrary[i].path;
resultLibrary[i].properties.getMusicPropertiesAsync().then(function (musicProperties) {
$("#list").append('<li>'+ musicProperties.artist + ', ' + musicProperties.title + '</li>');
}
});Előre is köszönöm a segítséget!
Nem kell átadnod, egyszerűen csak használd fel a path változót a callback függvényben.
$("#list").append('<li>' + path + ': ' + musicProperties.artist + ', ' + musicProperties.title + '</li>');
Itt egy példa.
Már gondolkodtam ezen, hogy honnan tudja az értékeket, bár nem kerestem, és most hirtelen nem is találtam erre konkrét leírást. Aki tudja pontosan, leírhatja, mert engem is érdekelne.

Amúgy én úgy gondoltam, hogy amikor meghívsz egy függvényt függvény paraméterrel, akkor a paraméterfüggvényeket interpretálja és az adott scopeban levő változók ha megjelennek a függvényben (persze úgy ha ott írod le a függvényt, nem előre definiálod), azokat kicseréli az adott értékekre (konkrét szám, mutató akrámi) és így fut le a függvény. -
v2izzy
tag
Már akartam mutatni, aki most tanul js-t annak kötelező, de aki jobban ismeri a nyelvet az is olvassa át mindenképp ezt: idiomatic.js
Sok hasznos nyelvi sajátosság és kódolási technika található meg!
-
v2izzy
tag
Eddig még nem ismerted? Nagyon hasznos. Számomra majdhogynem alapabb mint egy Jquery. Persze részben azért is mert ezt nem csak kliens oldalon lehet használni.

Mindenképp érdemes tudni róla sok időt lehet spórolni vele, főleg ha szereted használni a funkcionális programozás elemeit. -
v2izzy
tag
Kedvet kaptam a problémához és ha jól értelmezem akkor egy ilyen függvényre gondoltál? Ez high-order megoldás szóval majd te írd meg hozzá az összehasonlító függvényt. (a linkelt példában amúgy azt teszteltem, amit te írtál)
Ja és a sorrend az megváltozik, de szerintem az nem nagy gond, de ha mégis meg lehet oldani.

-
v2izzy
tag
-
v2izzy
tag
Jah, mondjuk így utólag megnézve elég egyértelmű.
De akkor most mi van? A Te selectoroddal mennyivel is gyorsabb, mint a jQuery-vel?
Tehát a
var foo = $.styled('.foo')
azt mondod, jóval gyorsabb, mint a
var foo = $('.foo')
?Na akkor, sorra veszem.

1. Csak jQuery:
var foo = $('.foo')
foo.css('color', '#CCC')
foo.css({
'font-size': '14px'
, width: '250px'
})
Ennek a sebessége átl. 160-170ms.2. Styled I. változat:
var foo = $('.foo').styled()
foo.set('color', '#CCC')
foo.set({
'font-size': '14px'
, width: '250px'
})
Ennek a sebessége átl. 5-6ms.3. Styled II. változat:
var foo = $.styled('.foo')
foo.set('color', '#CCC')
foo.set({
'font-size': '14px'
, width: '250px'
})
Ennek a sebessége átl. 0-1ms.A II. azért gyorsabb mint az I., mert az I.-ben van egy függvényhívás először: $('.foo') és ennek a időt vesz a lefutása (a 2 közti különbség). A II.-nál pedig csak egy stringként átadom a selectort.
-
v2izzy
tag
Ez elég durva különbség....

Mondjuk azt nem értettem, miért úgy mérted az időt, hogy a kezdeti időnél new Date()-et használsz, a végénél meg Date.now()-t, akkor már legyen következetes.
Mármint az alábbi résznél:
var start = new Date();
...
var end = Date.now();
Nem sok teteje van.
"Ezért hozzáadtam egy ilyen végrehajtási módot is."
Példa a használatra?
Ja csak úgy tűnik kicsit összevissza másoltam ki a kódot a hsz-edből. Javítva!

Amit linkeltem példában már azt használtam.

-
v2izzy
tag
Semmi különös benchmarkra nem gondoltam.
Csak valami ilyesmire, ami milliszekundumokban mérve kijelzi a scriptek lefutása közötti különbséget:
var startTime, endTime, differenceInMilliseconds;
startTime = new Date();
for(var i = 0; i < 10000000; i++){
;
}
endTime = new Date();
differenceInMilliseconds = endTime - startTime;
console.log('difference in milliseconds:');
console.log(differenceInMilliseconds + ' ms');Itt a for ciklus helyére kerülne a Te kódod, így lehetne tesztelni a hagyományos jQuery-s és a styled pluginos lefutás közötti különbséget.
Egyébként most látom, MDN-en is van példa (csak már megírtam a fentit addigra):
MDN - Date// using static methods
var start = Date.now();
// the event you'd like to time goes here:
doSomethingForALongTime();
var end = Date.now();
var elapsed = end - start; // time in millisecondsMásik:
// if you have Date objects
var start = new Date();
// the event you'd like to time goes here:
doSomethingForALongTime();
var end = new Date();
var elapsed = end.getTime() - start.getTime(); // time in millisecondsLényegében ugyanaz, mint az enyém.
===========================================================
Egyébként érdekes, sokan nem hiszik el, hogy az Opera JavaScript-motorja márpedig igenis gyorsabb, mint a többi jelenlegi böngészőé. Ahogy azt sem hiszik el, hogy a Firefoxé lassú (ahogy lassú a Firefox általában).
Most lefuttattam egy tesztet a fenti, legelső kóddal a konzolból - tehát 10 millió lépéses for ciklus:Chrome 21.0.1180.83 m
Átlag: 9733 ms.
Firefox 14.01
Átlag: 20759 ms (!!!).
Opera 12.01 (x86)
Átlag: 2163 ms (!!!).
A Firefox tehát 3 mérés után átlagban 18596 ms-mal (!!!) lassabban végzett a feladattal, mint az Opera, Chrome pedig átlagban 7570 ms-mal hajtotta végre lassabban az Operánál; a Firefox 11026 ms-mal volt átlagban lassabb, mint a Chrome.
Az Opera tehát elég feltűnően nyert. Ezt a mérést még többször végrehajtottam, mindig hasonló eredményekkel zárult, legfeljebb 1-1,5 másodperc differencia volt az egyenként kijött eredmények között. A teszt idejére egyébként a legtöbb extensiont a böngészőkben letiltottam.
Számomra azért meglepő, hogy 10 millió lépésszámnál már ilyen szintű különbségek jönnek elő.
A Firefox GUI-ja egyébként a teszt idejére lényegében végig teljesen használhatatlan volt ("Not responding").A tesztgép pedig az adatlapomon is látható Lenovo Y570 (Intel Core i5 Mobile i5-2410M @ 2.30 GHz / 1066MHz / 3MB L2 - 2.9GHz Turbo Boost, Western Digital Scorpio Blue WD7500BPVT-24HXZT1, Intel HD 3000 / NVIDIA GeForce GT555M - 1GB GDDR5 VRAM, ...).
Látod ez túl egyszerű és ésszerű volt, hogy eszembe jusson.

Itt ki lehet próbálni a tesztet, konzolba írja az időt. Nekem jQuery-re átlagba 160-170ms-t adott, styled-ra 0-1ms-t. Bár most annyi változtatás történt, hogy észrevettem például az hogy $('.foo') időt vesz el (átl. 3-5ms) míg megcsinálja az objektumot (de bennmaradt, mivel szerintem ez szebb, meg ha valaki olyat csinál, hogy $('body').find('.foo'), akkor abból ő összerak egy selectort). Ezért hozzáadtam egy ilyen végrehajtási módot is. -
v2izzy
tag
+ (#2794) Karma :
bocs, most látom, hogy erre elfelejtettem reagálni, pedig ez egy jó téma.
A DOM CSS gondolom azért lehet gyorsabb, mert a böngésző "natívhoz közeli" dolgait piszkálod, nem pakolsz köré egy library-t (mármint itt a jQuery-t). De mennyivel gyorsabb ez egyáltalán?
Végül is attól még, hogy ilyen módon használja az ember, a böngészőnek ugyanúgy frissítenie kell minden elemet, ha az adott selectorra 100'000 elem illeszkedik, akkor annyit.
v2izzy, tudnál esetleg valami benchmark-szerű mérést csinálni erről?
Ha már így belementél a dologba...
Kíváncsi lennék, milyen különbségeket lehet mérni, érdekes lehet egy ilyen eredmény.Igazából nem nagyon ismerek benchmark-os oldalakat/programokat, ha tudsz akkor ajánlhatnál.

A Chrome Inspector-ban a Profile-al próbáltam méregetni. A CSS Selector Profiles-ban mértem le a 2 fajtát, styledal, és csak sima jQuery-vel, előbbi 2 mérésből 0 és 1ms, utóbbi 94 és 107ms lett. A CPU Profiles ezt adta jQuery-vel, styled-al.
Amúgy persze érthető, hogy miért lassabb a .css(), hiszen ennél mindegyik matched elementet sorra veszi, csinál belőle egy jQuery-nek megfelelő osztályú objektumot, metódusokkal stb. és ez mind időt vesz el. A styled meg szintén valamilyen módon sorra veszi az elementeket, de az már csak annyira, mint amikor a .css() megváltoztatja a style attribútumot és azt sajnos nem tudom, forráskód hiányában, hogy talán optimálisabb módon is akár. Memória szempontjából egyik se kérdéses, a styled alapból nem használhat sokat, a jQuery-s objektumokat meg a GC majd összeszedi gondolom.
-
v2izzy
tag
A DOM CSS-t használja, így a CSS szabályokat módosítja a DOM-on belül, nem konkrétan az elementeket manipulálja.
Szerintem nagyon frankó gondolat

(Bár inkább classokat használnék
)Egyébként a set se feltétlen bonyolult, hiszen a rule-ok szövegét lehet szerkeszteni is. Mondjuk jó kérdés, hogy a specificitással mi lesz.
-
v2izzy
tag
"olyan előnye (persze ez valahol lehet hátrány is) van a jQuery-s .css()-el szembe, hogy ez azután is igaz az egyező selector-ú elemekre miután miután a művelet végrehajtódott."
Ezt nem értem. Miért, a .css() miért ne lenne igaz a "művelet" végrehajtása után? Milyen "műveletre" gondolsz?
Vegyünk egy példát, van egy ilyened:
<div class="alma">ASD</div>
Nyomatsz egy ilyet:
$('.alma').css('color', 'red');Ez ennek végrehajtása után is igaz lesz.... persze fogalmam nincs, mire gondolhattál...
Lehet kicsit értelmetlenül fogalmaztam de arra gondoltam amit Karma írt.

-
v2izzy
tag
Ja igen, ezen a .set() metóduson akkor is meglepődtem egy kicsit, hogy hogyan is lenne ez implementálva. Hogyan állítanád át a stílusokat? A fájl módosításához már nyilván szerveroldali programozás is szükséges. Anélkül meg csak kliensoldalon lenne érvényes a dolog, aminek meg így első blikkre nem tudom, mi a konkrét haszna.
Egyébként a megvalósítás szempontjából nekem az tűnne logikusnak, hogy az épp kiválasztott fájlnál történjen meg a módosítás, a többiben ne matarásszon, mert az nem biztos, hogy a kívánt viselkedést eredményezné.Nem kell hozzáférni a css fájlhoz, én sem abból olvasom ki. A stíluslapok betöltődnek a DOM-ba és innen könnyen lehet kezelni őket, szóval egy értékadás nem a fájlt írja át hanem csak a DOM-ba. A .set()-et azért tartanám jónak, mert pl. olyan előnye (persze ez valahol lehet hátrány is) van a jQuery-s .css()-el szembe, hogy ez azután is igaz az egyező selector-ú elemekre miután miután a művelet végrehajtódott. Sebességbeli különbséget nem tudok, de kíváncsi lennék, meg kellene nézni. Plusz így nem tesz a html kódba egy ronda style attribútumot.

-
v2izzy
tag
Mindkettő elég hasznosnak tűnik, gratula.
Nem nagyon olvastam át a doksit, de jól értem, hogy az első plugin arra való, hogy CSS-fájlokban kotorásszon adott osztályokra, azonosítókra definiált stílusokra?Igen arra való. Kiválaszthatod, hogy melyik fájlban/fájlokban keressen, mert így gyorsabb lehet és csak ami selector-t a jQuery átad ($(selector).styled()), azt megkeresi és visszaadja. Még lehetne akár bővíteni olyannal hogy legyen egy .set() is, tehát lehessen változtatni a CSS-t.
Viszont amiben nem voltam biztos, hogy ha van több fájl és azokban valamelyik selectorhoz tartozó stílus többször is szerepel, akkor melyiket tartsam meg? Most úgy csinálja, hogy mindig ha a következő fájlban lévő felülírja a már szereplő stílusokat. Ez logikus, de nem tudom, hogy ez a legjobb megoldás. -
v2izzy
tag
Hello!
Nemrég felmerült egy olyan gondom, hogy el akartam érni CSS stílus értékeket JS-el de úgy hogy nem egy meglévő elem stílusát vizsgálom. Meg is találtam hogy el lehet érni, de elég hosszadalmas mire hozzá lehet jutni a kívánt értékhez. Keresgettem jQuery-ben valami szép megoldást rá (vagy nem jQuery-ben), de nem nagyon talátam. Úgyhogy csináltam egy kis plugin-t, ami a beadott selector szerint megkeresi az ahhoz tartozó stílusokat. Akinek van kedve nézze meg és lehet közreműködni is akár, mert lehet még javítani/plusz funkciókat bele tenni.
+ részben ennek segítségével elkészült egy sportversenyeknél használt csoport és bracket készítő bundle-öm. Akinek netán ilyenre lenne szüksége.

</self-reklám>

-
v2izzy
tag
Az volt a gondom, hogy nem tudtam beletenni az összes adatot a korábbi módszeremmel az obj változóba, igazából nem értettem, hogy hogy kellene megvalósítanom a dolgot.
Nekem az adatok sorrendje teljesen mindegy, csak kirajzolom a polygonokat.
Jelenleg az alábbi módon valósítottam meg a dolgot, remélem nem csináltam benne programozói hibát (végülis működik
).function process_data(items){
var x;
var data = new Array();
data = items;
while ( x = data.pop())
{
var i = 5;
var y = x[i];
var obj = {};
var polygon = new google.maps.Polygon({
paths: google.maps.geometry.encoding.decodePath(String(y)),
strokeColor: "#0000ff",
strokeOpacity: 1,
strokeWeight: 1,
fillColor: "#00ffba",
fillOpacity: 0.4,
editable: false
});
polygon.setMap(map);
var obj = {
'name':x[i-4],
'description':x[i-3],
'address':x[i-2],
'wikipedia':x[i-1],
'points':x[i],
'category':x[i+1],
'parent_area':x[i+2],
'area':polygon
};
polygon.objInfo = obj;
google.maps.event.addListener(polygon, 'click', function(event){
showArrays(event,this.objInfo,this.getPath());
}); //kattintásra megnyílik az infowindow
google.maps.event.addListener(polygon, 'rightclick', function(event){
//this.setMap();
showContextMenu(event.latLng,this.objInfo);
});
infowindow = new google.maps.InfoWindow();
}
}
function showArrays(event,obj,vertices) {
var contentString = "<b>" + obj.name + "</b><br />";
contentString += "Leírás: " + obj.description + "<br />";
contentString += "Cím: " + obj.address + "<br />";
contentString += "Wikipedia: <a href='http://hu.wikipedia.org/wiki/" + obj.wikipedia + "'>hehe</a><br />";
contentString += "Kategória: " + obj.category + "<br />";
contentString += "Szülõ terület: " + obj.parent_area + "<br />";
contentString += "Clicked Location: <br />" + event.latLng.lat() + "," + event.latLng.lng() + "<br />";
infowindow.setContent(contentString);
infowindow.setPosition(event.latLng);
infowindow.open(map);
}A ShowContextmenu függvényt azért nem másoltam be, mert az még nincs kész.

Így már igen működik, bár az kicsit fura, hogy az obj-nak az area property-je a polygon, majd az egész obj-ot beleteszed a polygonba.
De hát így fog működni ezzel a módszerrel az igaz. Viszont itt egy példa ami szemlélteti, hogy különböző ciklusfajták hogy kezelik a handler függvényt. Ez alapján így is írhatnád:data = items;
data.forEach(function(x) {
...
var obj = {
'name': x[i-4],
...
'area': polygon
};
google.maps.event.addListener(polygon, 'click', function(event){
showArrays(event, obj, this.getPath());
});
google.maps.event.addListener(polygon, 'rightclick', function(event){
showContextMenu(event.latLng, obj);
});
...
}) -
v2izzy
tag
A térkép már inicializálva van ezelőtt a kód előtt. Ezzel annyit csinálok, hogy az adatbázisból lekért adatokból kirajzolom először a polygonokat és ennek az adatait akartam átvinni a másik függvénynek. Mindegyik polygon rendelkezik egy click és egy rightclick listenerrel, előbbire egy buborék jön fel, amiben csak szimplán kiírom az adatait, míg utóbbi esetben egy menü, amiben lehet választani, hogy törlöm vagy szerkesztem a polygont. Mindkét esetben szükségem van az adataira. A kódban csak a neve szerepelt, egyébként azóta már belekerült a leírása, címe, kategóriája, stb.
A data tömbben a területek adatai sorban vannak (abban a sorrendben, ahogy az adatbázisban), viszont azt nem értem, hogy miért baj, hogy a pop() függvénnyel veszem ki belőle az adatokat, mert szerintem ebben az esetben teljesen irreleváns az, hogy milyen sorrendben rajzolom fel a térképre a területeket. Bár mindketten írtátok, hogy érdemes lenne sorban. Az én megoldásomnak (fordított sorrend) milyen hátulütője lehet a későbbiekben?
Például egy új embernek, vagy neked később nehezebb lesz egyből megértened, mi is történik és szerintem egy .forEach() gyorsabb is mint így (bár ez csak nagy adatmennyiségnél lenne feltűnő).
Másrészt nem az volt kezdetben a gondod, hogy csak az utoljára kiszedett tömb elemei kerülnek bele? A pop-os módszerrel ez így is van, de ha forEach-el csinálod, akkor az eventListener-ek handler függvényében, mindig az aktuális elemet tudod felhasználni és akkor így nem szükséges id. Remélem jól értelmeztem a problémát.
-
v2izzy
tag
Elakadtam a munkában, az adatbázisból betöltött adatokat szeretném egy tömbben tárolni úgy, hogy a kirajzolt polygonokra jobb gombbal kattintva fel tudjam használni azok adatait. A kód:
function process_data(items){
var x;
var data = new Array();
data = items;
while ( x = data.pop())
{
var i = 5; //egy elemnek az ötödik paramétere hordozza a koordinátáit
var y = x[i];
var obj = {};
/*$('<ul/>', { // a kapott elem kiírása ellenõrzésképpen
'class': 'my-new-list',
html: y
}).appendTo('#get_informations');*/
var polygon = new google.maps.Polygon({
paths: google.maps.geometry.encoding.decodePath(String(y)),
strokeColor: "#0000ff",
strokeOpacity: 1,
strokeWeight: 1,
fillColor: "#00ffba",
fillOpacity: 0.4,
editable: false
});
polygon.setMap(map);
var zyx = x[i-4];
obj = {
'name':zyx,
'area':polygon
};
google.maps.event.addListener(polygon, 'click', showArrays); //kattintásra megnyílik az infowindow
google.maps.event.addListener(polygon, 'rightclick', function(event){
showContextMenu(event.latLng,obj);
});
infowindow = new google.maps.InfoWindow();
}
}
function showContextMenu(caurrentLatLng,obj) {
var projection;
var contextmenuDir;
projection = map.getProjection() ;
$('.contextmenu').remove();
var a = "<a id='menu1'><div class='context'>Adatok szerkesztése</div></a>" +
"<a id='menu2'><div class='context'>Körvonal szerkesztése</div></a>" +
"<a id='menu3'><div class='context'>Törlés</div></a>";
contextmenuDir = document.createElement("div");
contextmenuDir.className = 'contextmenu';
contextmenuDir.innerHTML = a;
$(map.getDiv()).append(contextmenuDir);
setMenuXY(caurrentLatLng);
contextmenuDir.style.visibility = "visible";
var x;
x = obj.name;
alert(x);
$("#menu1").click(function(){
alert("haha");
});
$("#menu2").click(function(){
alert("haha");
});
$("#menu3").click(function(){
alert("haha");
});
}A process_data függvényben megyek végig a tárolt adatokon, kirajzolom a kordináták segítségével a poligonokat és az obj nevű objektumban tárolnám az adataikat.
A jelenlegi kódommal az a baj, hogy az utoljára kiszedett tömb elem adatai kerülnek csak bele.
Valakinek van ötlete, hogy hogyan tudom megvalósítani ezzel a módszerrel, hogy később bármelyik polygonra kattintva be tudjam azonosítani, hogy az obj objektumban melyik paraméterek tartoznak hozzá? Sajnos arra nem találtam megoldást, hogy mondjuk adok egy id-t minden poligonnak és az alapján azonosítom az adatait?Ha valaki tudna segíteni, hogy ezt hogyan tudnám megoldani, nagyon hálás lennék.

Próbálj meg így végigmenni a data tömbön:
data.reverse().forEach(function(x){ ... })
És az obj-t lokálisan hozd létre.
-
v2izzy
tag
Jaaaaaa, értem, jó, így már felfogtam.
Szerintem erre nincs jobb, mintha stringként átadod úgy, ahogy a jQuery-nél lehet, pl. img tag dinamikus létrehozására a jQuery topicban épp mutattam példát: [link]
valahogy hasonlóan kellene megoldanod, persze akkor alternatív utat kell választani, nem ilyen "függvényszerűen" lehet meghívni (pl. div() ).
jQuery-kódban pl.:
// If a single string is passed in and it's a single tag
// just do a createElement and skip the rest
.....Aztán a végére eljutsz oda, hogy felfedezed a spanyolviaszt, és készítesz egy új jQuery-t.

Ismerem a jQuery-nek ezt a funkcióját természetesen, de pont ez volt a célom vele, hogy egyszerűbben és szebben lehessen leírni a html-t js-be. És persze hogy elmehetnék jq-s irányba és string-ként átadhatnám, de pont nem ez a célom. A jQuery természetesen ezt csinálja, mert nekik nem ez a lényeg, hogy minden tag-hez külön fgv. stb. Pont ezért csinálom így, hogy valami pluszt adjon ez mondjuk a jQuery-shez képest. (Bár azért világmegváltó terveim nincsenek vele, de tanulásnak jó meg azért érdekesnek találom
)És ha összehasonlítod:
var img = $('<img />').attr({
'id': 'myImage'+img_index,
'src': 'http://doc.jsfiddle.net/_downloads/jsfiddle-logo.png',
'alt': 'JSFiddle logo',
'title': 'JSFiddle logo',
'width': 250
}).appendTo('#container');Ezzel:
huk('#container')
.img({
'id': 'myImage'+img_index,
'src': 'http://doc.jsfiddle.net/_downloads/jsfiddle-logo.png',
'alt': 'JSFiddle logo',
'title': 'JSFiddle logo',
'width': 250
})
.append();Szerintem utóbbi szebb (de lehet mert én írtam
)Meg azért nagy erőforrást nem emészt fel szerintem, minden tag-hez egy function pointert rendel, tehát nem klónozza a függvényeket a tag-ekhez. És akinek meg a custom tag kell (az esetek nagyon kis százaléka), annak meg arra is van lehetősége. Meg például a .list() fgv-t különösen hasznosnak találtam sokszor.
-
v2izzy
tag
"A komplett lista azért kell mert akkor tudom a prototypejába betenni az alap objektumnak a függvényeket (.div(), .span() stb)."
Nem néztem meg a kódodat, és biztos most nehézkes a felfogásom, de most még mindig nem jön át, mi az oka, hogy a createElementes megoldás miért nem elegendő ehhez (tehát ha valaki divet szeretne kreálni, akkor document.createElement('div');). Mit hagyok ki? Mihez kell a komplett lista konkrétan?Példakódra rátérve: én amúgy nem értem, a megfelelő sorok végére miért nem teszel pontosvesszőt.
Sokkal áttekinthetetlenebb így a kód, jó is, hogy a JSLint szól érte.
A korábbi kódot, amit az oldaladról szedtem, elég gyorsan JSLint-validdá lehetett tenni:
http://jsfiddle.net/Sk8erPeter/Pm6pg/1/
Így már szerinte is okés (a class-ból 'class' lett, különben nem jó, mert foglalt névre hivatkozik a JSLint).
Példa még mindig nincs a GitHub-oldaladon.
Amúgy ha bejelentkezel a JSFiddle-oldalon, és ennél a kódnál rámész, hogy "Fork", akkor máris a Te neved alatt fog megjelenni.
=========
(#2578) Forza_JUVE :
OK, nincs mit, ha kell segítség, akkor másold be ide a kódot, hogy mivel próbálkoztál, és segítünk.Itt egy példa. Látod, ha itt nem tudnám előre a neveket, akkor nem lehetne a függvényeket megcsinálni a megfelelő névvel az objektumba.
-
v2izzy
tag
Igen, ezt linkelted, de igazából ehhez nem nagyon értem, miért kellene neked a komplett lista.
Azt meg nem tudtam, hogy stringből generálod le, és nem mondjuk egy document.createElement segítségével (nem néztem meg a kódot), pedig az lenne a logikus.
Amúgy most hirtelen nem jut eszembe, mi az a DOM-elem, ami nem szokott működni, mondjuk ez nyilván böngészőfüggő, ergo IE-ben tuti csomó nem megy, de Chrome-ban ha csinálok egy ilyet:
document.createElement('asd');
Akkor létrehozza ezt:
<asd></asd>
Pedig ez nem egy "valid" tag a szokványos W3C-s DTD-k szerint - de miért ne lehetne ez teljesen valid egy saját DTD szerint?Mi ad vissza HTMLUnknownElement típust?
Ha azt ad vissza, akkor miért nem dobsz vissza egyszerűen egy hibaüzenetet, hogy a megadott DOM-elem valamilyen oknál fogva nem megfelelő, adjon meg mást?A komplett lista azért kell mert akkor tudom a prototypejába betenni az alap objektumnak a függvényeket (.div(), .span() stb).
Mikor elkezdtem csinálni, akkor még nem nagyon ismertem a DOM-ot, aztán így maradt eddig.
Nekem nem az a gondom, hogy nem valid tagokat akarnak megadni, azzal semmi gond (most is van benn egy addTag fn. hogyha valakinek van valami mása. Csak azt írtam, hogyha pl. kiiratod, hogy:
console.dir(document.createElement('asd'))
akkor a visszakapott objektum típusa HTMLUnknownElement
console.dir(document.createElement('div'))
akkor HTMLDivElement.
Ezzel csak azt akartam mutatni, hogy a valid tagok külön vannak kezelve, tehát valahol el vannak tárolva, hogy mik validok. De ez nem olyan lényeges, mivel ettől függetlenül is biztos el van tárolva.
Lehet kellene csinálni egy jsFiddle-t, majd megnézem holnap, meg a jsLint-et is. Köszi!
-
v2izzy
tag
Hű, hát ez egy jó kérdés. Most hirtelen nem jut eszembe ilyenre megoldás, de egyébként mire kellene ez neked konkrétan?
Plusz kíváncsiságból: milyen tagre akarnál esetleg tesztelni, amit egyik vagy másik böngésző nem támogat (úgy értem, pl. mit nem támogat adott böngésző, amire neked szükséged lenne)?
Hát már régebben szerintem linkeltem, egy ilyen kis HTML kód generáló modulomhoz. Mert most ugye van egy tömb amibe összegyűjtögettem úgyahogy a tageket, de így azért mégsem az igazi.

Amúgy lehet teljesen, de majd meg látjuk újra írom az egész modult, mert most csináltam egykét tesztet és úgy tűnt ha DOM-os függvényeket (createElement, appendChild stb) használok, akkor gyorsabb (ti is mondhatnátok véleményt ha van tapasztalat (most csak egy objektumból generálok le egy stringet és azt illesztem be)). Szóval ilyen függvényekkel hoznám létre a HTML-t.
Nézegettem, és ugye a a createElement az bármilyen taget legenerál, de ha nem ismert az element akkor a visszaadott objektum HTMLUnknownElement típusú, viszont ha valami ismert, akkor HTML HTMLDivElement például. Tehát ezért is gondolom, hogy valamilyen módon benne vannak a létező tagek (meg hát amúgy is benne kellene lennie azért
), de jó lenne valahogy elérni őket.Speeedfire: ismerem, de mint fent írtam még nincs megoldásom.

-
v2izzy
tag
Szerintetek hozzá lehet jutni valahogy egy böngészőben az általa ismert HTML tagek nevéhez valahogy, például egy tömb formájában?
-
v2izzy
tag
-
v2izzy
tag
Sziasztok, lenne még egy kérdésem. A setTimeout vagy setInterval függvényekkel hogyan ismételtessek olyat, aminek van átadott értéke? Tehát ha van egy fv(i), azt hogyan ismételtessem 1 másodpercenként? Mert ha csak beírom, hogy setTimeout("fv(i)", 1000); akkor i is not defined..
Alert-el kiírattam közvetlenül előtte az i-t és jó értéket adott, de a setTimeout nem veszi át az i-t.. Próbáltam úgy, hogy az i értékét átadtam egy másik változónak, majd így hívtam meg az fv()-t(fv(másik változó)), de akkor meg duplázza magát, és 2szeresen hajtja végre az utasításokat, esetemben 1 képet átugrik és a 2-vel arrébb lévőt cseréli ki..
Nagyon köszi előre is a segítséget!
String helyett rendes függvényt is átadhatsz (máskor is inkább így használd szvsz):
var i = 123
setTimeout(function() {
console.log(i)
}, 1000) -
v2izzy
tag
Valaki ránézne erre?

Az első pontot még beírja, de utána már nem. Érdekes, hogy ha később miután mozgattam a pontot, akkor már azt mondja, hogy a marker nem létezik...Így gondoltad? Tehát, hogy egy markert leteszel és ha azt mozgatod, akkor változik a pozíció? Vagy több markert letenni (ha így akarod akkor már tömbbel kell)?
-
v2izzy
tag
Sziasztok!
A következő problémához kérném a segítségeteket.
Van egy comboList-em:
<form><select id="chtip">
<option value="34">valami
...document.getElementById('chtip').value segítségével elérem a kiválasztott opció "value" értékét (itt 34) és tudok vele számolni. Viszont én egy opciónál két értékkel szeretnék számolni, vagyis pl. a "valami" kiválasztása esetén nem csak a 34-el, hanem egy másik hozzá tartozó értékkel is.
A kérdésem az, hogy hogyan tudnék két "value"-t definiálni egy opcióhoz?
Előre is köszi.
Hello!
Hát azt nem tudom, hogy lehet-e több value attribútomot vagy hasonlót adni egy elementnek (bár kétlem), de ha jól értelmezem, számomra az lenne a legegyszerűbb, hogy a value-ba egy speciális karakterrel elválasztom a két értéket, és amikor megkapom a value-t js-be akkor szétválasztom.
Pl.: <option value="34_43">Remélem tudtam segíteni.

-
v2izzy
tag
Köszi a segítségeket!

-
v2izzy
tag
Mit értesz "adott elem" alatt?

"adott elemből" tudnék mondani egy párat...
Pl. a konkrét problémám, hogy egy oldalon egy gombnyomásra előjön egy div középre pozicionálva és ha azon kívül kattintanak akkor zárja be, vagy mint pl. a facebook-nál ha az Account-ra kattintasz, akkor ha a megjelenő ul-en kívül kattintasz akkor eltűnik.
Remélem már érthető.
-
v2izzy
tag
Hello!
Valaki tudna nekem adni egy olyan kódot/függvényt, ami azt csinálja, hogy ha egy adott elemen kívül kattintok akkor pl. bezárja azt.
A segítséget előre köszönöm!

-
v2izzy
tag
Hello!
Egy olyan kérdésem lenne, hogy hogy kell címszerint átadni egy függvénynek?
A választ előre köszönöm!
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
- Revolut
- World of Tanks - MMO
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen ÚJ notebookot vegyek?
- Milyen TV-t vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Autós topik
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Diablo IV
- Diablo II: Classic és Resurrected
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- AKCIÓ! MSI Claw A1M 512GB SSD kézikonzol garanciával hibátlan működéssel
- Azonnali készpénzes Sony Playstation 5 lemezes és digitális felvásárlás személyesen/csomagküldéssel
- iking.hu Apple iPhone XR 64GB használt White megkímélt 100% akku 6 hónap garancia
- Keresünk iPhone 15/15 Plus/15 Pro/15 Pro Max
- 27% - Dell Alienware AW2524HF 500Hz GAMING IPS Monitor! 25" 1920x1080 / 0.5ms / FreeSync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest








Ha már így belementél a dologba...




