- Programozás topic
- Bocsánatot kért az Apple, mert nagyon mellélőtt a legutóbbi reklámjával
- Windows 11
- Ubuntu Linux
- Milyen routert?
- Proxmox VE
- Hálózati / IP kamera
- Már nem hisz a nagy európai EV-forradalomban a Ford
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #821 üzenetére
Lejárt a szerk. idő, az előbbi kódban igazából a második feltétel
myLinks.hasOwnProperty("href")
akart lenni.
Ahogy itt látható:
http://jsfiddle.net/Sk8erPeter/zWDpV/2/[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #823 üzenetére
Nem bírtam ki, és írtam neked egy komplett példát. Szerintem elég jól szemlélteti.
A jQuery Form Pluginben van egy .clearFields() metódus, azt használtam fel.
Az egyik esetben tagektől teszem függővé, hogy egy adott wrapperen belül melyik mezőket kell törölni, a másik esetben azt használom fel, hogy adtam mindegyik fieldnek egy class-t, így ezt az attribútumot felhasználva végzem a resetelést (itt a HTML5-ös data attribútumot is felhasználtam az egyszerűség kedvéért):http://jsfiddle.net/Sk8erPeter/eQ7ky/
Remélem így már tiszta.
Sk8erPeter
-
Sk8erPeter
nagyúr
Látom itt is írta egy csávó, hogy "remember jsFiddle is just an Alpha version", akkor ezé'.
Azért fasza, hogy ezt használjuk debug céljára.Sk8erPeter
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
válasz Speeedfire #831 üzenetére
Pedig hasznos.
Szerk.: ugyanitt külső CSS-fájlt is be tudsz tölteni, nem csak JavaScript-fájlt.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TonTomika #835 üzenetére
Karma és martonx tök jól leírták a lényeget - többek közt amit én is nagyon hangsúlyoznék: ne gányolj, és soha többé ne használj ilyen semmitmondó fos változóneveket, mert normális fejlesztőnek az ilyentől széjjelnyílik az agya, aztán szíve szerint utolsó leheletéig ütné azt, aki ilyet csinált.
Még valami:
van ez a kódrészleted:
$("body div#nav ul ul#szolgaltatasok")
Mivel itt egyedi azonosítók tartoznak ezekhez a DOM-elemekhez, tökéletesen felesleges ilyen rohadt hosszú selectort írni. Elég ennyi:
$("ul#szolgaltatasok")
vagy akár az ul-t is lehagyhatod, bár ez még nem árthat, mert legalább egyértelművé teszi, hogy itt egy listáról van szó.
Ezenkívül egy kissé általánosabban kéne megírnod a kódjaidat, nem "bedrótozni" az egyes menüelemekhez tartozó viselkedést. De asszem hasonlót már leírt Karma is. A lényeg, hogy tényleg legyenek class-aid, és azok megléte vagy nem léte szerint viselkedjenek az elemek."A feladat, hogy mindegyik aktuális menüpont ahol éppen jár az ember highlightolva legyen."
Ezt gyorsan felejtsd el, hogy ilyen window.location.pathname-hez hasonló hülyeségekkel szívatod magadat, feltételezem, itt egy NEM AJAX-szal legenerálódó menüről van szó - az aktív menüpontot jelző class-t normális esetben szerveroldali nyelvvel (pl. PHP-vel) szokták belegenerálni az adott menüpontba.
Tehát ha mondjuk van egy <ul> listád, akkor pl. a "rolunk" oldalon van egy "active" (vagy épp "highlighted" class, mint ez:
<ul>
<li><a href="/XYZ">XYZ</a></li>
<li class="highlighted"><a href="/rolunk">Rólunk</a></li>
....
</ul>Remélem érthető így.
Ami még fontos, és amire martonx is célzott: a lenyíló menük problémáját már előtted megoldották mások, úgy, hogy agyontesztelték mindenféle böngészőben, úgyhogy tényleg ne most találd fel a spanyolviaszt.
Ajánlott plugin lenyíló menüs macerára: Superfish.
jQuery-alapú, egyszerű, faszányos.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TonTomika #840 üzenetére
"Ez a kódrészlet csak egy teszt egyébként, azért van így kódolva, egyébként nem BASIC örökség, csak hirtelen ez így egyszerűbbnek tűnt."
Ha most kezded az érdemi kódolgatást, akkor tényleg szokj le róla még időben, hogy ilyen változóneveket használj, még tesztnek sem alkalmas, mert lehet, hogy később szeretnéd ezt a tesztet továbbfejlesztgetni, aztán már fingod nem lesz róla, hogy milyen változó mi a francot csinál."Ki kell, hogy ábrándítsalak, ez most egy valódi vevőnek szánt honlap, ám azért is nem választottam CMS-t mert nagyon egyszerű felületre van szüksége, csak képfeltöltésre a megfelelő projekt menüpontjába, ahol egy nivo slider váltogatja a képeket. A WordPresst ismerem és szeretem is, de ehhez a projekthez túl soknak gondoltam, aztán lehet hogy kicsit megszívattam magamat."
Na, akkor ezt még most, az elején még egyszer gondold át.
Úgyis tuti, hogy az lesz, hogy a vevő majd rájön idővel, hogy akar admin-felületet is, rájön, hogy hoppá, mégis kéne egy plusz valami bele, aztán még valami, és akkor eljutsz oda, hogy döngeted a fejed a falba, hogy a francért nem használtál inkább CMS-t már az elején. Egy normális hosztingnál el kell, hogy bírja megfelelő tempóval az amúgy erőforrás-igényes CMS-t is.
A másik: nehogy már 2012-ben FTP-vel feltöltött fájlokat olvasson be a scripted egy könyvtárból, aztán azt listázza ki agyatlanul sorrendben...
Már ilyen pluginek vannak, mint a Plupload, amivel szépen lehet egyszerre sok fájlt feltölteni, és ezt lekezelheted PHP-vel, feltöltheted az elérési utakat adatbázisba, stb... de tuti, hogy van erre valami Wordpress-modul is (Drupalban van, tuti, hogy WP-ben is van).Ha ez most egy vevőnek szánt honlap, nem hiszem, hogy az ő weboldalát kéne ujjgyakorlatnak használni.
Sk8erPeter
-
-
Sk8erPeter
nagyúr
válasz Speeedfire #846 üzenetére
Itt leírtam, miért kell PHP, hogy ne bohóckodjon JavaScripttel, hogy kiderítse, melyiket is kéne megjelölni aktív menüpontként.
"Elvileg ha megvan csinálva az ul li ul li szerkezet akkor a parent is aktív lesz."
He?
Mitől lenne aktív attól, hogy a gyerekelemben van egy "active" class mondjuk?Amúgy amiket írsz, az ide-oda kattintgatós módszernél, hogy kattintáskor leszedje a class-t, hozzáadja, stb., ahhoz az kell, hogy AJAX-szal jelenítse meg a tartalmakat. Én nem láttam ilyen utalást a hsz.-eiben, bár lehet, hogy volt, én már annyira nem bírtam követni az egészet.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TonTomika #848 üzenetére
Ja jó, felfogtam, mi kéne, most látom a belinkelt oldaladat.
"Mert a jQueryt azt nem igazán ismerem és nem tudtam, hogy ezzel is lehet a href attribútumot vizsgálni. "
JavaScripttel mindent lehet "vizsgálni", és mivel a jQuery tulajdonképpen a legtöbb JavaScriptes művelet köré épít egy "wrappert", ezáltal egyszerűbbé téve a használatát, ezért jQuery-vel is mindent lehet "vizsgálni".Igazából mi értelme a "highlight" class-odnak, ha semmit nem csinálsz vele?
Ha jól értem, itt valami olyasmit csinálsz, hogy hozzáadod az aktív elemhez, meg minden szülőelemhez is... bár ezt nem így csinálnám, de ha már így van, akkor a highlight class-nak adhatnál egy display:block tulajdonságot, hogy eleve nyitva legyen. Vagy hasonló. Mondjuk akkor már másképp kéne elnevezni...
Igazából azt szokták jelezni, hogy melyik MENÜPONT aktív, nem szokás a szülőknek is megadni az aktív tulajdonságra jellemző osztályt.
Lényeg, hogy amikor lekéred az oldalt, akkor a menühöz szerveroldalon kéne hozzácsapni azt a tulajdonságot, amitől nyitva maradnak ezek a menük.Esetleg feltölthetnéd jsFiddle-re a kódot, akkor tuti több kedvünk lesz szórakozni vele.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TonTomika #851 üzenetére
Itt felesleges az .on() használata, legalábbis úgy tűnik, nem fogod AJAX-szal bővítgetni a menüdet...
Csak feleslegesen erőforrás-zabáló. Elég click eseményre feliratkozni.A CSS-részt rendesen túlbonyolítottad, változtattam rajta, mondjuk tudom, hogy így elb@szódott a betűtípus, de azt már nem volt kedvem visszacsinálni.
Mindenesetre a selectorokat egyszerűbben is meg lehet adni, pl. a link színénél durván bonyolítottad, sokszor megadva ugyanazt a színt, miközben általánosabban is lehet.Magát a nyitogatós kódot az .on() részen kívül nem néztem át, lehet-e egyszerűsíteni.
Én itt most kihagytam a fenébe a highlight-os szarakodást, tök felesleges.Megmutatom, pl. szerveroldalon hogy lehetne megoldani, hogy eleve nyitva legyen, úgy, hogy belegenerálod az <ul>-be az active-list class-t, a linkhez meg pl. az active-link class-t. Ezeknek meg meg van adva, hogy eleve nyitva legyenek.
Most egyelőre itt meghagytam azt, hogy JS-sel tünteted el a többit. Egyszerűen úgy, hogy .not()-tal kizártam azokat, amik nem rendelkeznek az active-list class-szal.
A lényeg: a projekt1 az aktív oldal az enteriőrtervezésen belül, ez eleve nyitva van.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ez egy egész jó kis pluginnek tűnik, nem ismertem, kösz.
A multi-step wizardot pedig még akár jQuery UI Tabs segítségével is könnyen megoldhatod, vagy a jQuery Tools oldalán egyből látható Scrollable plugin segítségével.
Sk8erPeter
-
Sk8erPeter
nagyúr
Hát ez a kód ebben a formában igen ocsmány.
Itt tudod szépíteni:
http://jsbeautifier.org/Eredménye:
function akarmi() {
var kesz = false;
if (document.getElementById('iderakd')) {
$('#iderakd').fadeIn('fast', function () {
$('#iderakdmasik').html('MOSTMINDEGY');
$('#iderakdmasik').fadeIn('slow');
kesz = true;
alert('Lefutottam');
});
}
return kesz;
}Felesleges a document.getElementById, ha már jQuery-t használsz.
document.getElementById('iderakd')
HELYETT
$('#iderakd')A kód érdemi részére: szerintem módosítanod kéne a gondolatmenetedet, és épp, hogy a callback-hez kötni azt a függvényt, amit abban az esetben kell meghívni, ha az animáció kész van, mert itt a függvény azonnal visszatér (de ezt látod is), a callback tulajdonképpen aszinkron módon ettől függetlenül végrehajtódik.
Mi a cél?Sk8erPeter
-
Sk8erPeter
nagyúr
"de ha jól tudom, akkor formokban nem lehet a html kódban div."
Ezt kitől hallottad? Ez egy nagyon téves információ! Az elég durva lenne, ha nem lehetne <div> a formon belül.
Mutatok egy példát, próbáld ki, hogy ezt validálod itt:http://validator.w3.org/#validate_by_input
XHTML 1.0 Strict valid dokumentum:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="hu" xml:lang="hu">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Blabla</title>
</head>
<body>
<form action="">
<div>
<div> blablabla
</div>
<div>
<input type="text" />
</div>
<div> blablabla
</div>
</div>
</form>
</body>
</html>Látható, hogy több divet is beleraktam a formba, az eredmény mégis "This document was successfully checked as XHTML 1.0 Strict!". Pedig az XHTML 1.0 Strict elég kényes bármiféle validációs hibára.
A lényeg tehát az, hogy semmi baj nincs a dives felosztással! Használd nyugodtan, formon belül is. Sőt! Amennyiben nem raksz a <form>-on belülre egy "wrappert", akkor validációs hibába is fogsz futni!Példa:
.....
<form action="">
<input type="text" />
</form>
.....A ..... helyére a korábbi kódot kell berakni, ha validálni akarod, ennek eredménye egy validációs hiba:
"Line 9, Column 28: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag"
Tehát kell az a <div>, vagy az itt felsorolt elemek valamelyike.Sk8erPeter
-
Sk8erPeter
nagyúr
Karma már leírta előttem a lényeget. Érdemes lenne átgondolni, hogy biztos jól közelíted-e meg a kérdést, és hogyan is tudnád elkerülni az animáció megvárását. Végső esetben muszájból meg lehet oldani az animáció bizonyos időre történő beállítását ('slow', 'fast' helyett milliszekundumban megadott időre, pl. 600), majd ennyi idő utánra időzíteni egy függvény lefutását setTimeOut()-tal, de esélyes, hogy ez nem túl szép megoldást fog eredményezni.
Akkor végül is annyi a lényeg, hogy az animáció előtt elindítasz egy AJAX-os kérést, futtatod az animációt, közben AJAX-szal pedig lehet, hogy már rég megkaptad a választ, de az animáció még mindig fut, és nem akarod, hogy ez "félbeszakadjon", mert mondjuk kicseréled az adott elemet az AJAX-os kommunikáció eredményeként kapott válasz feldolgozása során?Hátha ez segít (saját megoldások helyett javasolnám ezt inkább):
jQuery BlockUI Plugin
Próbálgasd ki a demókat![ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Legfőképp attól függ, hogy "hibás"-e, hogy milyen DOCTYPE-pal validálod.
Pl. az XHTML Strict 1.0-val 26 validációs hiba jön elő, ami ilyen kis mennyiségű kódnál elég sok.Felraktam ide a kódot, amit kipróbálhatsz validátorban, és ami invalid (26 hiba):
http://pastebin.com/SViFGdMjJó is, hogy pont ilyen kódot mellékeltél: érdekes megfigyelni, hogy amint a formon belüli összes tartalmat egyetlen árva <div>-be beraktam, máris a 26-ból összesen 6 hiba lett. 20-szal kevesebb hiba. Asszem ez elég bizonyíték arra, hogy pont, hogy jól jön formon belül is egy div.
Lényegében a kóddal alátámasztottad az előző mondókámat.Felraktam ide a valid változatot, 0 hibával:
http://pastebin.com/8f4sMB5pÉrdemes megnézni a változtatásokat, hogy milyen attribútumok nem léteznek, meg hogyan lehet javítani az invalid kódot. Az oldaladat meg alkalmanként érdemes validátorral ellenőrizni SZERINTEM.
Egyébként van, aki amellett kardoskodik, hogy a validációs hibákat le kell sz@rni, de ezzel nem értek egyet, mert a validációval sok hiba forrása is kiderülhet, plusz az invalid kód könnyen vezethet oda, hogy a JavaScript-kódok sem működnek helyesen, valamint sok esetben bizonyos böngészőkben (még véletlenül sem akarom említeni az IE-t ) megjelenítési hibákat is okozhatnak a helytelen HTML-kódok. Nekem sokszor jött már jól, amikor ötletem nem volt már, hogy a JS-kódom miért nem működik - ráküldtem a validátort, és kiderült, hogy egy elem zárótagjét rossz helyre raktam, és ez megbolondította a kódot (ez egy eset a sok közül).[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Jaja, persze, a BlockUI alapvetően a felhasználói interakciókat "blokkolja" adott elem(ek)en belül, szóval attól még a kódok a háttérben ugyanúgy érvényre jutnak. Igazából azért linkeltem neki, mert lehet, hogy ezzel is meg tudja oldani részben a problémát (bár jobban belegondolva valószínű, hogy nem a klattyogásokat akarja elkerülni).
Sk8erPeter
-
Sk8erPeter
nagyúr
Szívesen!
"A !DOCTYPE nekem egyébként csak sima html-nek van beállítva."
Szóval akkor HTML5-ös a DOCTYPE.===
(#879) Male : viszont akkor az játszik, amit Karma mondott, és ebben az esetben nem biztos, hogy hasznát fogod venni a BlockUI-nak, mert úgy tűnik, alapvetően nem a felhasználói interakciókat akarod átmenetileg ellehetetleníteni.Sk8erPeter
-
Sk8erPeter
nagyúr
Kiadhatnál esetleg egy
header('Content-type: application/json');
fejlécet PHP-vel (lásd ezt), hogy korrekt legyen a dolog.
Bár a .getJSON() eleve JSON-ként próbálja parse-olni a kapott adatot, ha nincs vele validitási probléma, vagy nincs valami plusz elcseszett header beállítva, akkor jól kellene működnie.(#888) papa019: ja, ez így működőképes.
(#882) Male : nehéz így konkrétumot mondani kód nélkül, tök esetfüggő lehet a dolog, hogy hogyan érdemes megoldani. Ha van egy konkrét kódot, aminél elakadtál, átalakításra szorulna, esetleg megmutathatnád, felrakhatnád jsFiddle-re, ÉS AKKOR JÓL SZANASZÉJJELCINCÁLJUK ÉS SZÉTFIKÁZZUK. Na jó, nem, szóval segítünk.
===
(#886) Karma : hádeizéhozé
Nem kell azon a kódon semmit átalakítania, hogy tömböt kapjon JSON-ben, mert eleve azt kap, miután json_encode()-olta ilyen formátumra, ahogy látható is.
Szóval jól csinálta.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Amit itt írtál, jQuery UI Autocomplete segítségével összesen ennyiből megoldható:
$(document).ready(function() {
var options = [];
$('#projectlist option').each(function(index, Element) {
options.push($(Element).text());
});
$( "#searchProject" ).autocomplete({
source: options
});
});Működő demo:
Sk8erPeter
-
Sk8erPeter
nagyúr
"Modern böngészőkben meg semmi szükség JSONP-vel kockáztatni."
Ezt a megjegyzést nem értem.
Mintha ezzel azt mondanád, nincs létjogosultsága a JSONP-nek.
Mi van, ha Te a saját oldaladon keresztül szeretnél cross-domain AJAX-kérést intézni, hogy mondjuk posztolj egyet Twitterre? (csak egy példa a sok lehetséges közül)
Ehhez legjobb tudomásom szerint szükség van a JSONP-re.Sk8erPeter
-
Sk8erPeter
nagyúr
Ez tulajdonképpen semmi extrát nem mutat be, csak annyit, hogy ne fogadjunk el szerveroldalon semmilyen beérkező adatot úgy, ahogy van, hanem futtassunk le rajta ellenőrzést, validáljuk, szűrjük, stb., tulajdonképpen általános irányelvek ráhúzhatók erre is. Ennyivel összefoglalható: soha ne bízz a külső adatforrásokban. Nemcsak JSONP, hanem bármi más beérkező adat esetében is igaz ugyanez.
=====
(#891) Frigo : ez tényleg jó hír. Jó tudni, hogy jelentős fejlesztések folynak a háttérben, nem reked meg a fejlesztés egy bizonyos szinten.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
items.push(item);
Ezzel lényegében pont azt csinálod, ami a baj a kóddal.
Nem adtál meg tömbindexet, hogy melyik elemét szeretnéd betenni az item-nek, ezért minden each-lépésben a teljes item tömböt bele fogja tenni.
Index alatt arra gondolok, hogy pl. van egy i indexed egy for ciklusban, és ott megadhatod így, melyik elemet rakod bele:
items.push(item[i]);
Ekkor az i-edik elemét teszed bele az itemnek.Itt szerintem - bár nem próbáltam ki - ez lenne a jó megoldás:
items.push(item[key]);
Várj, az sem jó, hogy a key kétszer van használva, az egyik each-nél cseréld le, tehát valahogy így (nem tudom, ez jó-e, próba nélkül írom):
var items = new Array();
var item = new Array();
$.each(data, function (key, val) {
//items.push('<li id="' + key + '">' + val.id + ',' + val.name + ',' + val.description + ',' + val.address + ',<a href="http://hu.wikipedia.org/wiki/' + val.wikipedia + '" target="_blank">Wiki link</a>,' + val.points + ',' + val.category + ',' + val.parent_area + ',' + val.parent_has_parent + '</li>');
$.each(val, function (inner_index, inner_element) {
item.push(inner_element);
});
items.push(item[key]);
});Sk8erPeter
-
Sk8erPeter
nagyúr
"a ++i az i++ ellenében nem hiba, csak előbbi használata javasolt"
Ez nem igaz. For ciklusnál teljesen jó az i++, tipikusan ezt szokták használni.Az sem igaz, hogy szintaktikailag helytelen lenne a
for (i=0; i<texts.length; i++)
sőt, ez így teljesen rendben van, ha az i-t korábban deklarálta var-ral. De ha nem, akkor a JavaScript ezt "megteszi" a háttérben, de persze az a normális megoldás, ha deklarálod.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ennek így indoklás nélkül főleg nincs értelme (ha nem is tudod megindokolni, akkor érdekesen jön ki egy olyan állítás, hogy szerinted ÉN tudom rosszul ), mert önmagában nem igaz, hogy "a ++i-t kéne megjegyezni". Nem, nem azt kell megjegyezni. Ez csakis attól függ, hogy épp mi a felhasználás módja. Ha neked az épp érintett résznél a MEGNÖVELT értékre van szükséged, és nem jó, hogy később növel, akkor indokolt a használata, egyébként abszolúte semmi előnye nincs. A for ciklusnál fejlécében pedig főleg semmivel nem lesz jobb a ciklusod attól, hogy ++i-t használsz i++ helyett.
Ez "a neten is ezt ajánlják" meg nem túl hiteles referencia.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Itt van ilyen geometry-s példa, a forráskódba belekukkantva így pakolja be a <script> taget:
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>Itt a libraries=geometry rész az érdekes. Nem lehet, hogy ez is kéne ahhoz, hogy működőképes legyen?
====
(#923) Jim-Y : majd leszoksz róla.
===
(#924) Karma : "(Vagy inkább a jQuery UI-t használni.)"
Én ehhez ragaszkodnék. Annyira sok minden lehet lekezeletlen saját kódban, hogy sztem jobb az embernek nem szívatnia magát, ha van egy ilyen alapvetően igényesen elkészített plugin.Sk8erPeter
-
Sk8erPeter
nagyúr
z-index=1900;
Ilyen CSS-ben nincs.
De ilyen van:
z-index:1900;
(egyenlőségjel helyett kettőspont)
jsFiddle-re relatív URL-eket hiába teszel, nem fog menni. A teljes HTML-doksit sem érdemes, csak a <body>-ban lévő részt.
Ha a <body>-ban <script> tagek között van valami kód, akkor azt meg pakold már át a JS-részre, arra való. Amúgy is, a saját HTML-oldaladon külön JS-fájlba kellene rakni ezeket a kódokat.Mivel itt még initialize() függvényed sincs itt, annak tartalmát nem tudom kitalálni, meg a többi dolog sem tudom, hogy kéne, hogy működjön nálad, így ezzel a linkelt kóddal egyáltalán nem tudok mit kezdeni. Azért linkelhettél volna olyat, aminek van valami köze a működéshez. Tudom, hogy sietős, meg minden, de ha gyors segítséget szeretnél, akkor azért jusson el valameddig a felrakott kód, legalább a megjelenítésig...
===============
(#935) papa019 :
contextmenuDir = document.createElement("div");
contextmenuDir.className = 'contextmenu';
contextmenuDir.innerHTML = a;
HELYETT jQuery-ben:var $contextmenuDir = $("<div/>", {
"class": 'contextmenu',
html: a
});már Karma is mondta, de
<div class='context'>Adatok szerkesztése<\/div>
HELYETT
<div class='context'>Adatok szerkesztése</div>Tehát a /-t nem kell escape-elni.
Mondjuk én speciel rühellem az aposztrófot is a HTML-attribútumoknál, szerintem "szebb" a rendes idézőjel, de ez már az én hülyeségem.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Itt a felvetést nem nagyon értem, hogy önmagában miért jelentene a JSONP-s adatlekérés nagyobb kockázatot, mintha bármi más módon kérnének le tőled adatot, és azt kéne szolgáltatnod kifelé... akár query stringként adják meg, akár POST metódussal, akár bármi más módon, a beérkező adatot (pl. ahol megadják, konkrétan milyen adatokra kíváncsiak), akkor is ellenőrizned, validálnod kell, és lényegében teljesen mindegy, hogy JSONP-vel, REST API-n keresztül, más web service-en keresztül kérik-e az adatot. Persze nyilván mondjuk egy SOAP vagy OData és komplikáltabb authentikáció esetén az bonyolultabb lehet, de itt most a legegyszerűbb "publikus" adatlekérésről beszélünk. "Publikus", mert ha valaki akarja, akkor nyugodtan lekéri ilyen módon az adatokat az oldaladról, mert láthatja a JS-kódodat, tehát nincs takargatva (de ez most úgy tűnt, nem is jelent problémát).
=================
(#942) Frigo : ez így önmagában tényleg nem biztos, hogy feltétlenül jó hír. Amiatt, amit Karma írt.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
"valószínűleg meg lehetne oldani, de nem tudom hogyan, kockáztatni meg nem fogok... ráadásul ha idegen oldalon van, ki tudja mennyire megbízható helyen... ha azt feltörik, megszerezhetik az azon az oldalon keresztül "dolgozók" adatait, hiszen oda fogják beírni, rosszabb esetben simán lekérik, mintha a már belépett felhasználó kérné"
Ha az megfelelő, ugyanúgy authentikációval lehet megoldani. Pl. session-alapú bejelentkezés után, egyszerűen megnézed, be van-e jelentkezve a felhasználó vagy sem, ha igen, akkor megmutatod neki az adatokat, ha nem, akkor nem.
A feltörést pedig már korábban is felhoztad, szerintem ez nem igazán érv, mert ha rendesen feltörik az oldaladat, akkor onnantól kezdve már totálisan mindegy, hogy abban az egy fájlban hogyan oldottad meg az adatlekérést és az adatok megmutatását, általában úgyis megszerzik a bejelentkezési adataidat pl. az adatbázis-szerverre vagy máshová. Vagy kifejthetnéd, mire gondolsz.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #964 üzenetére
Ezt ajánlanám, nagyon könnyen konfigurálható:
jQuery Cycle Plugin
Nálam bevált, használom is.
Szerk.: konkrétan pl. a fade effecttel lenne szépen megoldható, úgy, hogy egymás után teszed a fekete-fehér képet, és a színeset.
Pl.:
$('#pics').cycle({
fx: 'fade',
speed: 1500
});
Segítek, ha elakadtál.(#961) Karma : ez a jQuery Slick Plugin tényleg nagyon jó, köszi, nekem is jól jöhet.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #964 üzenetére
Feltettem neked ide egy működő példát a jQuery Cycle Pluginnel:
http://jsfiddle.net/Sk8erPeter/LV5FB/Természetesen az is megoldható, hogy csak adott alkalommal fusson le az animáció - például a callback függvényekkel megoldható, hogy az átmenet csak egyszer történjen meg.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #967 üzenetére
Szerintem lehetett valami para a jsFiddle-lel, amikor készítettem, iszonyatosan lassú volt, lehet, hogy az volt az oka.
Próbáld már ki légyszi megint, mert nálam HÁROM böngészőben is teljesen jól megy. Váltogatja a képeket már egy ideje.(#968) Karma : nyilván overkill lenne előbbihez, de most nem értem, egyikőtöknél sem működik? Mert én eddig Chrome-ban, Operában és Firefoxban néztem, mindegyikben jó volt.
Sk8erPeter
-
Sk8erPeter
nagyúr
Ja, azé'... Ezek szerint nem nézted elég ideig, hogy lásd, folyamatosan váltakozik.
A Te változatod is jóféle, és ezt is lehet akár automatizálni, hogy automatikusan váltogasson. A Cycle plugin előnyei ott jönnek ki, hogy megoldott kérdés benne az animációk randomizálása, meg nagyon sok egyéb is. Elég durván terjedelmes demóoldalai vannak.Amúgy a tákoltat a Slick Pluginre írtad?
===
(#957) Male : őszintén szólva a végére már kicsit belekavarodtam, hogy hogy is van ez, de látom amúgy sem egyszerű a helyzet. Ebben az esetben, ha login-adatokat utaztatsz, jóval komplikáltabb a helyzet, titkosításra meg egyebekre is valószínű, hogy fontos lenne gondolni. Már ha jól értem az eredeti felvetést.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #972 üzenetére
Hát nem ártana tudni, milyen kódot írtál... Anélkül nehéz lesz segíteni!
Rakd fel Te is jsFiddle-re a kódodat.Szerk.: ja, jut eszembe, jQuery-t include-oltad?
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #975 üzenetére
Akkor nem csoda, hogy nem megy.
http://code.jquery.com/jquery-1.7.2.min.js
http://malsup.github.com/jquery.cycle.all.jsEzt a kettőt töltsd le magadhoz, és ilyen sorrendben tedd be a script tagek közé, ahogy a java.js-t is betetted.
Ezután pedig szépen nevezd át a java.js-t legalább javascript.js-re, mert ez nem Java, hanem JavaScript.
Szerk.: meg ha már van egy külső JS-fájlod, akkor tedd inkább abba a JS-kódokat.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #979 üzenetére
Mé' nem mutatsz kódot?
Szerk.: jah, most látom, hogy írtál privit.
A probléma ennyi: nem használtál $(document).ready()-t. Én direkt betettem a példakódomba... az valóban megtévesztő, hogy a jsFiddle-nél nem minden esetben kell alkalmazni, ezért ez a példa vitt félre téged. Ha megnézed, jsFiddle-nél az itt pirossal bekeretezett rész miatt van az, hogy nem kell írni a $(document).ready()-t.
Először is: melyiket szeretnéd használni, a Cycle Plugint, vagy pedig a Karma által mutatott kódot? Felhasználástól függ, hogy melyik lesz neked jobb.
Mindenesetre bármelyiket is, azt így használd:$(document).ready(function(){
// ide jön a kód!!!!!!!!!444négyNÉGYNÉGYNÉGY
});[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #984 üzenetére
Karma fentebb mutatott kódja ennek a követelménynek pontosan megfelel. Akkor ezek szerint neked totál felesleges a Cycle Plugin, erre a feladatra felejtsd el.
(#978) Karma :
img {
&:first-child {
position: relative;
}
position: absolute;
}De durva, ezt még eddigi pályafutásom során így soha nem használtam. Ennek a működése gondolom IE-ben - sok máshoz hasonlóan - nem túl százas, nem?
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #986 üzenetére
Szívesen! De Karmának köszönd, végül is az ő megoldása lesz neked jó ezek szerint.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #989 üzenetére
A CSS-részt is másold le, mert anélkül semmit nem ér az egész! JSFiddle-ben jobb fölső sarok. Ami fontos tudnivaló a CSS-sel kapcsolatban, hogy <head>-részben a title és meta tagek után mehet, de még a <script> tagek előtt legyen, szóval röviden első a stílusfájl.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #991 üzenetére
Az nem baj, SŐT, a scriptekhez hasonlóan az is úgy a jobb. Kettő szempontból: a böngésző így gyorsítótárazni tudja, plusz könnyebb így kezelni.
// $(".magicbox").children(":nth-child(2)").hide();
Ezt a sort miért kommentelted ki? Nem mintha ez okozná a problémát a szétesésnél.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
Vaze, tényleg... Akkor nyilván ezért nem használtam még úgy, ahogy...
Nem lett volna egyszerűbb kapásból máshol is működő példát idetenni?Itt van egy máshol is jól működő:
http://jsfiddle.net/Sk8erPeter/QAka2/5/[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Közben szerkesztettem a hsz.-t, beraktam egy működő jsFiddle-linket.
A sok kommentjel szándékos, mert karakterkódolási para lehet, ha valaki mindent egyből kimásol, ezt a részt akkor egyszerűen el kell tüntetni, és akkor megszűnik a karakterkódolási para.Én most próbáltam IE8-ban, teljesen jól működik.
Szerk.: http://i.imgur.com/DcwcI.png
Amúgy az egy dolog, hogy Te így használod élesben, de a többség nem.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Hmm, még én sem használtam, szóval én is tudatlan vagyok a témában, de kezdheted az oktatást. Amúgy megnézve a hivatalos oldalon a példákat, eléggé igencsak faszán hasznosnak tűnik, pl. a változószerű használat kapásból feltűnt.
Ja, előbb elfelejtettem mondani, IE-ben valami iszonyat lassan jön elő a jsFiddle-ben összerakott tartalom a jobb alsó sarokban... Elsőre azt hittem, na, ez nem működik, aztán jó lassan csak megjelent a tartalom... és jól műxik. Nálad egyáltalán be sem jön a jsFiddle?
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Bocs, de ez így nagyon ronda megoldás.
Ha már nem inline módon adod meg az egyes attribútumok értékét (mint pl. az onclick-attribútumét), amit nagyon jól is teszel, akkor használd ki a lehetőségeket, amiket a jQuery kínál, mert nagyon kényelmesen lehet vele megoldani az ilyesmit.
Azt írod, select listából való kiválasztás esetén szeretnéd átirányítani a felhasználót. Ekkor a .change() eseményre köss eseménykezelőt.
Az átirányítást pedig igénytől függően window.location.replace()-szel vagy window.location.href-fel oldd meg.Ezek alapján példa:
$(document).ready(function(){
$('#szallmodvalt').change(function(){
var $selectedItem = $(this).find(':selected');
alert($selectedItem.val());
var url = "/admin.php?url=admin_raktar_item.php&szallmodvalt=" + $selectedItem.val();
// @see http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery-javascript
// // similar behavior as an HTTP redirect
// window.location.replace(url);
// similar behavior as clicking on a link
window.location.href = url;
});
});Még egy fontos dolog: ebben semmi AJAX nincs, ez egy szimpla átirányítás!
Sk8erPeter
Új hozzászólás Aktív témák
- Programozás topic
- Xbox Series X|S
- A Corsair égisze alá kerül a Fanatec
- Milyen TV-t vegyek?
- Teljes verziós, ingyenes mobil játékok és alkalmazások
- Óra topik
- Ukrajnai háború
- Diablo IV
- Bocsánatot kért az Apple, mert nagyon mellélőtt a legutóbbi reklámjával
- Android játékok topikja
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen