- Netfone
- Samsung Galaxy A54 - türelemjáték
- Motorola Moto G24 Power - hol van az erő?
- Yettel topik
- Apple Watch Ultra - első nekifutás
- Telekom mobilszolgáltatások
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Android alkalmazások - szoftver kibeszélő topik
- Poco X6 Pro - ötös alá
- Vodafone mobilszolgáltatások
Hirdetés
-
Érkezőben a Poco M6 4G
ma 5G-s és 4G-s Pro modell már van, hamarosan lesz Poco M6 4G-s alapváltozat is.
-
Különösen rendezett beltér hozható össze a Cooler Master új házában
ph A 49,73 literes térfogatú, látszólag jól szellőző modell tárt karokkal várja a konnektoraikat rejtő ASUS és MSI alaplapokat.
-
Rövid előzetesen a S.T.A.L.K.E.R. 2: Heart of Chornobyl
gp Továbbra is szeptemberi premierrel számolnak a fejlesztők, reméljük több halasztásra már nem kell számítanunk.
-
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
-
Jim-Y
veterán
Üdv. Nekem egy olyan kérdésem lenne, hogy a try blokkban hogy tudok úgy két statementet futtatni, hogy mindkettőt lekezelje a try?
try{
console.log(one.showText());
console.log(one.showText2());
} catch ( e ){
console.log(e.message);
}Itt az első biztos exception-t fog dobni, amit a catch el is kap, és le is kezel, a problémám az, hogy utána a második statementet már nem kezeli le. Tudom, hogy egy nested try..catchel meg lehetne oldani, de az nem túl elegáns szerintem. Szóval, hogy lehet azt elérni, hogy minden statementet lekezeljen a blokk?
-
Karma
félisten
Hogyhogy nem kezeli le? A második utasítás meg se fog hívódni, mert az exceptiontől kiszáll abból a belső blokkból. Ez a dolgok természetes rendje, a második függvényhívásig nem jut el a program se try blokkban, se anélkül, ha kivételt dob az első.
A szóhasználat miatt nem jön át mit szeretnél, de azért próbálok valamit írni.
Ha mindkettő elszállhat és mindkét hibát le akarod nyelni, akkor két try blokkot írsz egymás után.
try {
valami1();
} catch (ex) {
// kiirod, megeszed, egyremegy
}
try {
valami2();
} catch (ex) {
}De ha mondjuk a második nem szállhat el, és meg akarod hívni az első hívás sikerességétől függetlenül, még akkor is ha továbbdobod a kivételt, akkor ott a finally.
try {
valami1();
} catch (ex) {
// kiirod, megeszed, egyremegy
// vagy tovabbdobod a "throw ex;" sorral
} finally {
valami2();
}Két try blokkot egymásba ágyazni tényleg nem szerencsés, mert amellett hogy egyre mélyebben kell indentálni, nem annyira szembetűnő hogy hiba esetén mi is történik.
Mondjuk ha ezek a te függvényeid, akkor akár megírhatnád őket úgy, hogy csak akkor dobjanak kivételt, amikor ténylegesen valami nagy hiba történik, nem pedig a kivételek köré szervezed a logikát (klasszikus antipattern). A boolean visszatérési értékű függvények pl. jók erre.
“All nothings are not equal.”
-
Jim-Y
veterán
Hogyhogy nem kezeli le? A második utasítás meg se fog hívódni, mert az exceptiontől kiszáll abból a belső blokkból. Ez a dolgok természetes rendje, a második függvényhívásig nem jut el a program se try blokkban, se anélkül, ha kivételt dob az első.
Igen-igen, ezt tudom, pont erre irányult a kérdés, hogy hogy lehetne a második utasítást is lekezelni ugyanabban a try-ban, csak nem tudtam jól megfogalmazni :/
Egyébként köszönöm az ötleteket, pont ilyen válaszra számítottam, ámbár amiket írtál azokat ismertem. 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. Innen jött a kérdés De akkor mostmár tudom, hogy ahogy írtam úgy semmiképp nem lehet, köszi.
[ Szerkesztve ]
-
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
-
Karma
félisten
-
Jim-Y
veterán
válasz Sk8erPeter #3306 üzenetére
Nem kell értelmet keresni a kérdésben, mert nincs benne, a prototype szemléltetése, és megértése miatt írtam a kódot. Egyébként.. valami ilyesmi volt..
$(document).ready(function(){
var one = jQuery();
jQuery.showText = function(){
jQuery("p").append("some text 1");
};
jQuery.fn.showText2 = function(){
jQuery("p").append("some text 2");
};
try{
//one.showText();
one.showText2();
} catch ( e ){
console.log(e.message);
}
}); -
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
-
Jim-Y
veterán
válasz Sk8erPeter #3309 üzenetére
A jQuery az egy sima javascript object, az fn pedig a prototype-ra egy alias. Ha olyat írsz, hogy jQuery.fn.akarmi, akkor a jQuery objektum prototypusához adsz egy új metódust. Ha a metódusban visszatérsz magával az objektummal, akkor létrehoztad a chainability lehetőségét.
-
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
-
Jim-Y
veterán
válasz Sk8erPeter #3311 üzenetére
Értem, köszi, én sem akartam amúgy okoskodni Akkor még lehet, hogy nem, de most már
többé-kevésbéértem a prototype hátterét.[ Szerkesztve ]
-
#68216320
törölt tag
Sajnos nem erősségem a JS és egy feladatot kellene megoldanom. Ehhez szeretném a segítségeteket kérni.
Van egy FORM jó sok elemmel, AJAX alapon DIV váltásokkal megoldva. Van egy olyan része, ahol 3 csoportban vannak checkbox-ok. Még máshol is vannak a form-ban, de azok most nem játszanak. A feladatom az volna, hogy mindegyik csoporthoz tegyek egy olyan checkbox-ot, amivel az adott csoport összes elemét tudom checked/unchecked állapotba tenni. A csoportok elemeit egy PHP rakja össze, így a számuk változó.
HTML minta így nézne ki:
<form name="myform" method="post">
<fieldset id="box1">
<legend>Test1
<input type="checkbox" onClick="">
</legend>
<input type="checkbox" name="list[]" value="1">Test1<br>
<input type="checkbox" name="list[]" value="2">Test2<br>
<input type="checkbox" name="list[]" value="3">Test3<br>
</fieldset>
<fieldset id="box2">
<legend>Test2
<input type="checkbox" onClick="">
</legend>
<input type="checkbox" name="list[]" value="4">Test4<br>
<input type="checkbox" name="list[]" value="5">Test5<br>
<input type="checkbox" name="list[]" value="6">Test6<br>
</fieldset>
<fieldset id="box3">
<legend>Test3
<input type="checkbox" onClick="">
</legend>
<input type="checkbox" name="list[]" value="7">Test7<br>
<input type="checkbox" name="list[]" value="8">Test8<br>
<input type="checkbox" name="list[]" value="9">Test9<br>
</fieldset>
</form>Próbáltam már írni olyan függvényt ami megcsinálja, de csak Form ID alapján tudom az elemeket megszámolni, a Fieldset ID alapján nem sikerül.
[ Szerkesztve ]
-
Jim-Y
veterán
válasz #68216320 #3313 üzenetére
Ez azt csinálja amit kéne? http://jsfiddle.net/Jim_Y/u29GK/1/
[ Szerkesztve ]
-
Penge_4
veterán
Azt meg lehet oldani valahogy egyszerűen JavaScripttel (Operás UserJS-hez kéne), hogy hangjelzést adjon mondjuk egy URL-ből behívott OGG (vagy ha külső URL-ről/localhost-ról való .ogg behíváshoz XHR kell, akkor base64 kódolással magában a .js fájlban lévő) hangot lejátszatva a böngészővel?
A legjobb az lenne, ha csak annyit kéne módosítani rajta, hogy az alert(""); sort kicserélem. Tehát amire most csak egy alert ablakot dob, arra lejátszana egy hangjelzést.
-
martonx
veterán
válasz Penge_4 #3316 üzenetére
function playSound(filename){
document.getElementById("sound").innerHTML='<audio autoplay="autoplay"><source src="' + filename + '.mp3" type="audio/mpeg" /><source src="' + filename + '.ogg" type="audio/ogg" /><embed hidden="true" autostart="true" loop="false" src="' + filename +'.mp3" /></audio>';
}Én kérek elnézést!
-
Penge_4
veterán
válasz martonx #3317 üzenetére
És ezzel még mit kell csinálnom, mielőtt beillesztem az alert() helyére? A (filename) az most változó, vagy hagyjam úgy, ahogy van és mindent a source src=-hez írjak? Az mp3-as részt meg gondolom szedjem ki és csak az ogg-ot hagyjam, mivel Operában használnám, az meg csak ogg-ot játszik le.
-
ther
aktív tag
Sziasztok!
Az egyik számítógépes játékhoz készítettem egy kalkulátort. Feltöltöttem egy ingyenes tárhelyre, ott rendben fut. Egy másik szerveren viszont a JS kód egy része lefut, a másik része nem. Ha a .js fájlokat az ingyenes tárhelyről linkelem be a HTML oldalhoz, akkor itt is rendben fut. Szerintetek miben gyökeredzik a hiba?
Aálírás
-
Karma
félisten
Sorvégek. Az egyik szerver valószínűleg Linux-alapú, a másik Windows; ugyanis a data.js a rossz esetben úgy néz ki, mintha a lényegi rész ki lenne kommentezve. (Chrome -> pretty print). Alakítsd át egységessé őket, sőt még jobb, ha a kommenteket //-ről /* */-re cseréled.
A context menü letiltásáért meg kőbalta.
[ Szerkesztve ]
“All nothings are not equal.”
-
ther
aktív tag
Oké, úgy néz ki, hogy 1 pár nap szívás után, mire rávettem magam, hogy felírom ide, akkor rögtön előjön a megoldás:
A filezillában a fájl átvitelt binary-re kell állítani.Sajnos mivel a fáljok feltöltését nem én végeztem így ebbe nem tudtam beleszólni Bocsi hogy foglaltam a helyet, hátha valakinek segítség lesz a jövőben.
Aálírás
-
qwertly
addikt
Sziasztok!Blogból,hogyan tudok eltávolítani javascripteket mert itt ezt kaptam a Soak tagtól .
-
qwertly
addikt
Nem értek a weblaphoz de valamennyire a pc-hez,így ismerősöm aki meg a pc sem ért de szeret írogatni megrajzolni.Van egy bloggja amelyet eddig női ismerőse töltött fel írásaival és rajzaival.Sajnos összevesztek sokszor van így nő és férfi között így megszakadt ez a lehetőség.Megkért segítsek neki ez nem tűnt olyan bonyolultnak mert csak megtudok formázni és feltölteni szöveget és képet evvel nem is lenne gond de a hölgy becsempészett idegen képeket is bloggba.Amelyet már nem tudok kiszedni pedig ki kellene,a fent említett fórumozó tag mondta meg,hogy JavaScript.Itt a blogg [link] és itt a képek amelyet elkel távolítani:kép
-
qwertly
addikt
Szia!
Nagyon béna vagyok ebben a témában,igy bementem az admin felületre utána klikkeltem a firefox jobb menü oldal forrása.Itt előjött jegyzettömb szerű felület ott szerkesztés azon belül a keresésre mentem ide beírtam widget slideshow szavakat amit írtál.Nem adott semmit.Mit csináltam rosszul? -
CSorBA
őstag
Sziasztok!
Volt itt korábban egy google mapsos minta, info window-al: [link]
Hogy tudom megadni, hogy betöltéskor már eleve legyen nyitva az ablak?
szerk.: Megoldottam, az volt a baj, hogy a setContent-et bent hagytam az eventlisteneren belül
[ Szerkesztve ]
-
#68216320
törölt tag
Üdv!
Készítek PHP-ban egy saját image browsert. Viszont a nagyon gyenge javascript tudásom miatt nem tudom megoldani, hogy a képekre történő jobb klikk-re egy saját menü jöjjön elő, egyelőre törlés lehetőségével. Ebben szeretném a segítségeteket kérni. Tehát egy képenként különböző linket tartalmazó helyi menü kellene.
-
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
-
#68216320
törölt tag
válasz Sk8erPeter #3336 üzenetére
Teljesen igazad van.
Viszont 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.
Más galériában én is csináltam ilyesmit, de ott a képre kattintásnak csak amolyan fogd és vidd funkciós szerepe volt.
Inkább az egyenkénti törlés lehet kényelmetlen. Most úgy oldottam meg, hogy csináltam a képek div-jébe checkbox-okat és így többet is ki lehet jelölni egyszerre törlésre.
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. Tehát elemenként több lehetőség lesz majd. Ott mindenképpen kelleni fog a content menü.
Amúgy a JQuery tökéletes megoldás, köszönöm. Igazából én tettem fel rossz helyre a kérdést.[ Szerkesztve ]
-
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
-
gyga
senior tag
sziasztok olyan script kellne ami leellenőrzi egy beviteli mező (form )ba beírt adatot és kiírja hogy hányadik karakter numerikus. köszi előre is
A kisebbség is számíít, teszkó.
-
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
-
martonx
veterán
válasz Sk8erPeter #3342 üzenetére
Vagy csak feliratkozol az input onchange eseményére, és utólag nézed meg a fókusz elvesztése után, hogy mit is kaptál a mezőben.
Én kérek elnézést!
-
gyga
senior tag
válasz Sk8erPeter #3342 üzenetére
csak az első szám karakter pozícióját kell kiíratni
A kisebbség is számíít, teszkó.
-
martonx
veterán
-
spammer
veterán
Van ez a jQuery toggle funkció: [link]
A linkelt oldalon működik, de saját html-ben már nem működik, akkor sem, ha szó szerint kimásolom a linkelt oldalról a kódot. Ha jsfiddlre bemásolom [link], akkor megint jó. WTF?
Itt a teszt.html head-je:
<head>
<title>Teszt</title>
<meta charset="UTF-8">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$('#toggle3').click(function() {
$('.toggle3').slideToggle('fast');
return false;
});
</script>
</head>Jó a js fájl elérési útja is, ellenőriztem. Mi hiányzik, vagy mi baja lehet?
szerk: a body-n belüli hivatkozás és div is szó szerint ki van másolva, és mégsem működik a teszt.html-ben.
[ Szerkesztve ]
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
-
spammer
veterán
Jók, direkt egy csináltam egy új, üres html-t tesztelésre, mert nem működött élesben.
Ennyi az egész kompletten:
<!DOCTYPE HTML>
<html lang="hu-HU">
<head>
<title>Teszt</title>
<meta charset="UTF-8">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$('#toggle3').click(function() {
$('.toggle3').toggle('slow');
return false;
});
</script>
</head>
<body>
<a href="#" id="toggle3">Animated Toggle</a><br /><br />
<div class="toggle3" style="display:none; background-color:#4CF;width:100px;height:100px;"></div>
</body>
</html>a linkelt oldalakon ez működik, helyben nem, mert a linkre kattintáskor csak a "#" jelet írja az url végére (test.html#), azaz "üres" hivatkozásnak veszi és nem fut le a script vagy én nem tudom.
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."