Hirdetés
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
A személyre szabott reklám lehet a streaming következő slágere
it A jobb célzott hirdetések érdekében adatplatformot indít a Warner Bros Discovery.
-
Grafikus jellegű munkára szánt AOC monitorok a megfizethetőbb szegmensben
ph A cég három kijelzővel jelentkezett, amelyek portfelhozatalukból kifolyólag dokkolóként is működnek.
Új hozzászólás Aktív témák
-
martonx
veterán
válasz Sk8erPeter #448 üzenetére
Akkor nézd meg ezt: http://knockoutjs.com/
Használtam, kellemes. És a legjobb dokumentációval, tutorialokkal rendelkező JS MVC framework, amivel találkoztam.Én kérek elnézést!
-
Sk8erPeter
nagyúr
Tényleg, igazad van, a plugin külön oldalát nem néztem!
Na, a mobilos fejlesztés része nem lehetett egy egyszerű meló.+ martonx: köszi a választ mindkettőtöknek!
Ha végre lesz egy kis felszabadítható időm, megpróbálok belekóstolni mindháromba (nem összefüggő a felsorolás): JavaScriptMVC, KnockoutJS, ExtJS.
Egyelőre nehéz belelátni így távolról, hogy milyen mértékben gyorsítaná meg a munkámat kliensoldali fejlesztés terén. Mondjuk gondolom azért nem olyan durva mértékű a beleölendő munkaórák számának csökkenése, mint amikor mondjuk én PHP-kódolásnál a kód 0-ról történő megírása, egyfajta saját keretrendszer írogatása-csiszolgatása helyett egyszer csak rájöttem, hogy minek szopatom magam ezzel, amikor nagyon faszán lehet pl. Drupalt vagy más meglévő keretrendszert használni - a Drupalhoz meg még nagyon profi modulok is készülnek, plusz a saját modulírás is rohadt gyorsan megy jó kis beletanulási idő után.ExtJS UI-része tényleg nagyon durván széleskörű, igazából elvileg pont ez a lényege - a jQuery UI ehhez képest tényleg nevetséges, viszont az legalább - szerintem - totál egyértelmű, könnyű a használata, a hivatalos honlapon fent lévő példák alapján nagyjából kb. átlagban 30 perc lelesni a metódusokat, azok használatát, és megnézni a doksit az összes elérhető eseményre és property-re - a néha fellépő bugok javítása már más kérdés.
Aztán bárcsak lenne még időm arra is, hogy érdemben tudjam már összehasonlítani a jQuery-t pl. a MooTools-szal vagy Dojo-val...
[ Szerkesztve ]
Sk8erPeter
-
Brown ügynök
senior tag
válasz Sk8erPeter #453 üzenetére
pl. Drupalt vagy más meglévő keretrendszert használni
Úgy érted tartalomkezelő rendszert.
"hacsak nem jön a jó tündér break utasítás képében..."
-
Sk8erPeter
nagyúr
válasz Brown ügynök #454 üzenetére
Nem, én most kifejezetten keretrendszerre gondoltam, mint a Kohana vagy ehhez hasonló, ha NEM CMS-ről (tartalomkezelő rendszerről) van szó, csak rossz volt a megfogalmazás módja. Arra gondoltam, hogy CMS-ek közül Drupalt használok, mást egyelőre nem, mert ez nagyon bevált; ezentúl alternatív mód a fejlesztésre a keretrendszerek használata, de az nem összekattintgatós.
[ Szerkesztve ]
Sk8erPeter
-
Brown ügynök
senior tag
válasz Sk8erPeter #455 üzenetére
Ja, ok, félreolvastam. Azt hittem a Drupalra mondod, hogy keretrendszer.
"hacsak nem jön a jó tündér break utasítás képében..."
-
Sk8erPeter
nagyúr
válasz Brown ügynök #456 üzenetére
Egyébként teljesen igazad van, elolvastam még egyszer, amit írtam, és tényleg úgy lehet érteni, szóval jó hülyén fogalmaztam, sorry.
Sk8erPeter
-
Speeedfire
nagyúr
Ipcamera ismét.
Olyan gondom lenne vele, hogy:
Működik a rendszer, az ajaxos kérések meg minden. De! Ha egymás után ugyan azt a kérést kérem, akkor egy idő után ha ismét kérem ugyan azt, akkor már 3-4-5-stv X indítja el a kérést a kiszolgáló felé. Ezt szépen mutatja is nekem a console.Csak egy példa (az egészet nem szívesen linkelném be, mert már vagy 300sornál van a js).
function ajax_set(szam) {
activecamip_ertek();
$.ajax({
type: "GET",
url: ip+'decoder_control.cgi',
data: ip[1]+"&command="+szam
});
}Pl ez. Meghívom kattintásra az ajax_set() függvényt. A paramétere egy szám. Beragadna az ajax? Létezik ilyen? A használt változókat megnéztem, de nem volt tömb egyik sem. Így nem értem miért lehet ez.
Főként akkor csinál ilyet, ha egymás után többször van ilyen kérés. Kamera pozicionálásnál pedig elég sokszor van.
Pedig aztán csak annyi lenne, hogy amikor rányomok az egérrel akkor indít egy pozicionálást, amikor eleresztem akkor pedig befejezi azt.
Az meg csak ennyi:
$(document).ready(function() {
$('.iranyit').click(function() {
if (IsNumeric(activecam)) {
var merre = $(this).attr('id');
$(this).mouseup(function(){
control('stop', merre);
}).mousedown(function(){
control('start', merre);
});
}
else {
error();
}
});
});function control(mit, merre) {
if (merre == 'fel') {
if (mit == 'stop') {
ajax_set(1);
}
else {
ajax_set(0);
}
}
...
}Lehet, hogy a sok függvény kavar be neki?
[ Szerkesztve ]
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Karma
félisten
válasz Speeedfire #458 üzenetére
Ragad az AJAX, ja... Az a technokol.
$('.iranyit').click(function() {
if (IsNumeric(activecam)) {
var merre = $(this).attr('id');
$(this).mouseup(function(){
control('stop', merre);
}).mousedown(function(){
control('start', merre);
});
}
else {
error();
}
});Te a kiemelt részen újra meg újra új egér eventhandlereket kötsz rá szerencsétlen elementre, emiatt szaporodnak fel a hívások - mindegyik meghívódik, mivel nem csinálsz ellene semmit.
“All nothings are not equal.”
-
Speeedfire
nagyúr
Ezt, hogy érted, hogy nem csinálok ellen semmit?
Ha kell akkor igény szerint ismét jobbra/balra stb kell a kamerát pozicionálni. Hogy lehet ezt kiküszöbölni?Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #460 üzenetére
A click eseményen belül miért kötsz újabb mouseup, mousedown eseményekre függvényhívásokat? Igazából ennek logikátlanságára próbálta felhívni a figyelmedet Karma is.
Tehát tulajdonképpen itt azt csinálod, hogy amint megtörténik a click() esemény, akkor újból és újból újabb eventeket kötsz rá az adott elemre, totálisan feleslegesen.
Akkor döntsd el, melyik eseményre akarsz feliratkozni, mivel.
Simán ki lehetne ebből hagyni a click()-et is, persze most kérdés, mi a pontos célod, olyan nagyon nem gondolkoztam el a függvényeiden, de az látszik, amit a kolléga mondott, hogy mindig újabb eseményeket kötsz az elemre.Sk8erPeter
-
Karma
félisten
válasz Speeedfire #460 üzenetére
Mondjuk gondold át jobban, hogy mit szeretnél és mit írsz. Nem lenne rossz, ha a HTML kódodat is idehajítanád, sokat segítene a gondolatolvasásban.
Nyitott kérdések:
- Mi a szándékod a divekre levetítve?
- Mi is pontosan az az .iranyit?
- Egy van belőle vagy több?
- Létrejön több példány belőle, vagy egy létezik az oldal élete során?Ettől függ a válasz.
Úgy tűnik egyre jár az agyunk Sk8erPeterrel
[ Szerkesztve ]
“All nothings are not equal.”
-
Speeedfire
nagyúr
A divek csak azért vannak, hogy lehessen hozzájuk eseményt kötni. Illetve csak ez az egy click esemény van rájuk.
<div id="nagykor">
<div title="Közép" id="kozepre" class="iranyit"></div>
<div title="Fel" id="fel" class="iranyit"></div>
<div title="Bal" id="bal" class="iranyit"></div>
<div title="Jobb" id="jobb" class="iranyit"></div>
<div title="Le" id="le" class="iranyit"></div>
</div>A irányít egy nagy kör, amiben nyilacskák vannak, ezzel mondom meg az ajaxnak, hogy most merre is menjen a kamera. Bal/jobb stb.
Ennyi az összes irányít div (egyelőre). Nem jön létre új belőlük. Ezek csak "statikus" div-ek.
A click eseményt azért akartam elkapni, hogy megtudjam utána vizsgálni, hogy szám-e activecam és ha igen, csak akkor nézem tovább, hogy most lenyomtam a gombot vagy felengedtem. Ugye ha megnyomom, akkor elindítja az ajax hívást az ipkamerának az adott paranccsal, amikor elengedem akkor pedig leállítja.
Igazából funkcióját tekintve megy az irányítás, csak épp ezekkel van teleszemetelve az egész. Ha meg nagyon sokszor van pozicinálva akkor akár 20-30x is elmegy már a végén a parancs.
Ha jól értem akkor ki kellene venni a click esemény figyelését és csak a lenyomást, felengedést kellene figyelni.Ha jól sejtem akkor erre gondoltatok:
$(document).ready(function() {
$('.iranyit').mouseup(function(){
if (IsNumeric(activecam)) {
var merre = $(this).attr('id');
control('stop', merre);
}
else {
error();
}
}).mousedown(function(){
var merre = $(this).attr('id');
control('stop', merre);
});
});[ Szerkesztve ]
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #463 üzenetére
Van mód arra is, hogy az egér mozgását kövesse a kamera, itt egy srác felrakott egy demót is az egérmozgatás irányának detektálására: [link].
Itt pedig arra mutat demót egy másik emberke, hogy hogyan tudod detektálni a mouseup, mousedown, mousemove eseményeket: [link]
Egyébként úgy látom, attól szeretnéd függővé tenni a kamera mozgását, hogy a felhasználó meddig tartja lenyomva az adott gombot - tehát amíg nyomja, addig mozogjon az adott irányba.
Ebben az esetben meg mindig hozzá kell adogatni az adott pozícióhoz egy bizonyos mennyiséget, amennyivel a koordinátákat egy lenyomásra szeretnéd arrébb mozgatni - aztán persze tovább lehetne fejleszteni úgy is, hogy mondjuk egy idő után a mozgás gyorsuljon, stb. -, és találtam egy mousehold() eventet létrehozó plugint is: [link]. Ez azért lehet hasznos, mert mondjuk itt elég átadnod a függvényt, amit szeretnél addig ismétlődően végrehajtani, amíg tart a gomb nyomva tartása. Ezzel végül is megspórolod, hogy külön-külön kelljen kezelned a mousedown, mouseup eseményeket, ez elintézi, végül is ennek az összevont kezelése a dolga a pluginnek.Sk8erPeter
-
Karma
félisten
válasz Speeedfire #463 üzenetére
Talán a mousehold a nyerő megoldás, de ha a mostani elgondolást követed, akkor sincs szükséged a click eseményre. Simán ellenőrizd amit akarsz a mouseup és mousedown belsejében, és ezeket csak egyszer regisztráld be a click helyett.
“All nothings are not equal.”
-
Speeedfire
nagyúr
válasz Sk8erPeter #464 üzenetére
Uhh, ennyire nem pro a kamera.
Irányításnál 2 opció van. Elindítom balra a kamerát, majd leállítom a forgást.De ez a mousehold() érdekesen hangzik, ezt meglesem.
Szerk.: Most nézem ez sem jó így. Mert így folyamatosan küldené az infót, én meg pont ezt akarom kiküszöbölni. Rányomok elküldi, hogy menjen pl balra, majd amikor elengedem akkor pedig leállítja a forgást. Akkor talán az utolsó példámat írogatom még át jobban.
[ Szerkesztve ]
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Karma
félisten
válasz Speeedfire #466 üzenetére
Most néztem csak vissza, igen arra gondoltam amit a 463 alján irtál
“All nothings are not equal.”
-
Brown ügynök
senior tag
Táblázatot szeretnék generálni JQuery-vel (1.6.1) de elakadtam.
Kód:
table = $('<table>', {'id': 'files'});
tbody = $('<tbody>');
row = $('<tr>');
name = $('<td>').html('Név');
version = $('<td>').html('Verzió');
created = $('<td>').html('Feltöltve');
row.append(name);
row.append(version);
row.append(created);
tbody.append(row);
table.append(tbody);A "name" cella helyett [object Object] rak be ami nem túl elegáns.
Illetve:
name = $('<td>', { }).html(response.version);
nameLink = $('<a>', {'href': 'get-document/id/'+ response.name});
name.append(nameLink);Ha a "name" cellába szeretném berakni a "nameLink"-t akkor azzal tér vissza, hogy a name-nek nincs append / html fv-e.
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
martonx
veterán
válasz Brown ügynök #469 üzenetére
A <>-ök a selectorba minek? Egyáltalán ez így működik? Ha véletlenül működik is, szedd ki őket onnan.
A name = $('<td>').html('Név'); pedig egy DOM select, ezt így nem tudod append-el alkalmazni.
name = '<td>Név</td>'; -t kellene használnod helyette.
Ha jól sejtem, hogy mit szeretnél.
Amúgy ha picit feljebb olvasnál (olvastál volna), akkor pont jquery temple-ekről volt szó.Én kérek elnézést!
-
Brown ügynök
senior tag
Valami bibi van, mert ha kiveszem <> jeleket, akkor nem működik egyáltalán.
Még FF-ban is úgy működik ha bennhagyom pedig az aztán szigorúan veszi a js-t.$('<td>').html('Név'); <<< Ilyet pedig már többször is alkalmaztam és működött, mint ahogy most is, kivéve az első elemet.
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
Sk8erPeter
nagyúr
"A <>-ök a selectorba minek? Egyáltalán ez így működik? Ha véletlenül működik is, szedd ki őket onnan."
Persze, hogyne működne, és önmagában nem helytelen a használata, mivel ezzel létrehozol egy DOM-elemet.
Hivatalos doksi:
Creating New Elements"[...] if the string appears to be an HTML snippet, jQuery attempts to create new DOM elements as described by the HTML. Then a jQuery object is created and returned that refers to these elements. You can perform any of the usual jQuery methods on this object:
$('<p id="test">My <em>new</em> text</p>').appendTo('body');
"
Komplikáltabb példa:
$("<div/>", {
"class": "test",
text: "Click me!",
click: function(){
$(this).toggleClass("test");
}
}).appendTo("body");Kisebb feladatokra nem feltétlenül éri meg külső template-eket használni.
Hacsak nem beépített megoldásról van szó, mint pl. ez: [link].==
(#472) Karma : há' má' megin' megelőzté'.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Brown ügynök #469 üzenetére
"A "name" cella helyett [object Object] rak be ami nem túl elegáns."
Változtasd meg a "name" változónevet, pl. personName-re vagy valami egyedibbre. A "name" valami foglalt név, most hirtelen nem vágom, mire.
Mindenesetre megváltoztatva a nevet már jó lesz.
Gondolom ugyanez vonatkozik a második kérdésedre is.Szerk.: meg is van a válasz, hogy miért foglalt a "name" (ez előbb nem jutott eszembe):
[link]
"name is a property of the window object."
>>> [link], [link]"The name of the window is used primarily for setting targets for hyperlinks and forms. Windows do not need to have names."
[ Szerkesztve ]
Sk8erPeter
-
Brown ügynök
senior tag
válasz Sk8erPeter #474 üzenetére
Erre én is gondolhattam volna. A td elemnek nincs append fv.-e, ezért másodikat végül így oldottam meg:
LinkName = $('<a>', {'href': 'get-document/id'+ response.item[i].name})
.html(response.item[i].name);
DocName = $('<td>').html(LinkName);Köszönöm.
@martonx: Ha nem így csináltad volna az még nem jelenti azt, hogy rossz.
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
martonx
veterán
válasz Sk8erPeter #473 üzenetére
bocs, igazatok van. Még sosem hoztam jquery-vel létre DOM elemet.
Elsőre meglepett maga az elgondolás is, hogy ezt így. De végülis miért ne lehetne.
Bár én biztosan nem így csinálnám.Én kérek elnézést!
-
martonx
veterán
válasz Sk8erPeter #473 üzenetére
Egyébként tovább gondolva dolgot. Szükség van egyáltalán ilyen esetben jquery-re? Ezt nem lehet tényleg simán egy stringben összerakni, és azt javascriptel belerakni az adott elembe?
Jó, meg szép dolog a Jquery, de ez nem pont olyan eset, amikor felesleges a használatának az erőltetése?Én kérek elnézést!
-
Karma
félisten
válasz Brown ügynök #475 üzenetére
Átnevezés helyett megpróbálhatnád a var kulcsszót használni a lokális változóid előtt
“All nothings are not equal.”
-
Brown ügynök
senior tag
Így átláthatóbb.
(#477) martonx: Ezt nem lehet tényleg simán egy stringben összerakni, és azt javascriptel belerakni az adott elembe?
Szerintem az általam használt módszerrel átláthatóbb és sokkal könnyebb javítani / átírni mintha egy stringbe beleírnánk inline mindent.
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
Sk8erPeter
nagyúr
Szerintem ilyen esetben egyáltalán nem felesleges, pont az általam imént mutatott példa miatt:
$("<div/>", {
"class": "test",
text: "Click me!",
click: function(){
$(this).toggleClass("test");
}
}).appendTo("body");Cél és megközelítés kérdése, de ha pl. konkrétan egy elemre szeretnél vonatkoztatni bizonyos tulajdonságokat, akkor a fentebb írt módon sokkal áttekinthetőbb, mit is csinálsz, és könnyebben is módosítható egyéb célokra, mintha mondjuk ezt írnád:
$('body').append('<div onclick="$(this).toggleClass("test");" class="test">Click me</div>');
VAGY
$('body').append('<div class="test">Click me</div>');
$('.test').click( function(){ $(this).toggleClass("test"); } );Szerintem legalábbis szétszedve egyből látszik, hogy az adott elemre vonatkoztatva mit szeretnél csinálni.
Ez a "stringbe passzírozzunk bele mindent" kicsit rondábbnak tűnik.Tulajdonképpen nem látom be, miért gondolod, hogy a fenti használat a jQuery "erőltetése", szerintem ez sokkal inkább a képességeinek a kihasználása az áttekinthető kód érdekében.
================
(#475) Brown ügynök : szívesen.
(#479) Brown ügynök : ja, ezzel egyetértek, tulajdonképpen pont én is ezt fejtettem ki fentebb.
(#478) Karma : na ja, ez is jogos. De szerintem a teljesen általános jellegű nevek helyett érdemes már a változónévben is jelezni, hogy milyen célra is lesz pontosan használva. Így más is gyorsabban átláthatja a kódot, meg Te is egyből tudod, mit is akartál vele.
[ Szerkesztve ]
Sk8erPeter
-
Karma
félisten
válasz Brown ügynök #479 üzenetére
Nem értek egyet, főleg azért ahogy most meg is harapott Szerintem tisztább és világosabb az, ha látszik mi a lokális változó, és mikor akarsz a window propertyjei között turkálni.
Egyébként az Eclipse szokott is az ilyenekért warnt osztogatni
“All nothings are not equal.”
-
martonx
veterán
válasz Sk8erPeter #480 üzenetére
Ez már pusztán csak stilisztika, illetve némi teljesítmény finomhangolás. Én vagy stringként oldottam volna meg, vagy template-tel.
Ha kicsi a feladat, az átláthatóság édes mindegy. Egy gyors kis stringes sor, és mindenki happy.
Ha nagy a feladat, akkor meg a template az egyetlen átlátható jó megoldás.
De ez már csak szőrszálhasogatás. A lényeg, hogy tanultam egy új megközelítést!Én kérek elnézést!
-
Sk8erPeter
nagyúr
"Ha kicsi a feladat, az átláthatóság édes mindegy."
Nem értek egyet. Miért kellene valamit összeb@szni attól még, mert röviden is megoldható? Egy feladat bármikor bővülhet is, lehet, hogy csak szép lassan terpeszkedik elég nagyra, és ha mindenféle összegányolt hányadék van benne, akkor feleslegesen nehezen követhető lesz egy idő után.Amúgy soha nincs "egyetlen jó megoldás".
Sk8erPeter
-
cAby
tag
Sziasztok!
Segítséget szeretnék kérni egy dologban, mert sehogy sem jövök rá.
Egy letöltött plugin-t használok ( [link] ), hogy egy text input-ra kattintva bejöjjön egy naptár és ki lehessen választani egy dátumot.Ebből lenne 2 bevitel, egy érkezési és egy távozási dátum. Ezeknél meg lehet adni számmal, h pl. a mától régebbi dátumok tiltva legyenek (minDate: 0).
Azt szeretném megcsinálni, hogy a távozási dátumnál az előzőleg kijelölt érkezési időpont lehessen az első, amit ki lehessen jelölni.
Tehát, mikor kiválasztom az érkezési dátumot, az belekerül a beviteli mezőbe, tehát abból a dátumból kellene kivonni a mai dátumot, az lesz pl. 7 és akkor a minDate: 7 lesz.Valaki esetleg találkozott már ilyen problémával?
Mivel JS terén elég kezdő vagyok, így nem sikerült ezt megvalósítsanom.
Arra gondoltam, hogy a mai dátumot megszerzem ezzel:
var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()Majd a szövegmezőbe írt dolgot így:
var name_element = document.getElementById ('erk_datum');Majd valahogy ezt szétvágom és kivonogatom egymásból az értékeket.
Amit ugyan még nem tudok, hogyan, de már ott elakadtam, hogy kiszedjem az értéket a szövegmezőből.
Gondolom, miután először kiválasztottam az érkezési dátumot, frissíteni kellene az oldalt.
if ( document.getElementById ('erk_datum') != 'null' )
{
window.location.reload();
}De aztán rájöttem, hogy ez azért nem jó, mert frissítéskor kitörli az értéket a beviteli mezőből. Másrészt ez a kód nem működött úgy, ahogy akartam, mert folyamatosan frissítette az oldalt.
Tehát tanácstalan vagyok, hogyan kellene.
Esetleg valaki tudni ötletet adni?Köszönöm.
Csabi -
sekli
addikt
A text input vagy a datepicker megváltozására rakj egy event listenert, amiben kiveszed az értékét, csinálsz belóle egy dátumot, hozzáadsz hét napot és beadod a másiknak.
nagy vonalakban:
//...
$('#erk_datum').datepicker({
onSelect: function(dateText, inst) {
var tavozas = new Date(dateText);
tavozas = tavozas.setDate(tavozas.getDate()+7);
$( "#tav_datum" ).datepicker( "option", "minDate", tavozas);
}
}); -
cAby
tag
Köszi a választ!
Gondolkozom rajta, egyelőre nem jön össze a dolog.
Így van alapból a dolog:
<script>
$(document).ready(function(){
$("#erk_datum").datepicker({
dateFormat: 'yy.mm.dd',
minDate: 0,
maxDate: "+2Y"
});
});
$(document).ready(function(){
$("#tav_datum").datepicker({
dateFormat: 'yy.mm.dd',
minDate: 0,
maxDate: "+2Y"
});
});
</script>Gondoltam apránként dolgozom fel amit írtál, mivel még nem csináltam ilyet és így könnyebb rájönnöm, hogy mi mit csinál.
A "$( "#tav_datum" )" kilikkre kiveszi a dátumot, ha jól értem.
Megpróbáltam kiiratni (alábbi kód), hogy mit vett ki, de nem a dátumot adta vissza, hanem ezt: "NaN".<script>
$(document).ready(function(){
$("#erk_datum").datepicker({
dateFormat: 'yy.mm.dd',
minDate: 0,
maxDate: "+2Y",
onSelect: function(dateText, inst) {
var tavozas = new Date(dateText); tavozas = tavozas.setDate(tavozas.getDate()); document.writeln(tavozas); }
});
});
$(document).ready(function(){
$("#tav_datum").datepicker({
dateFormat: 'yy.mm.dd',
minDate: 0,
maxDate: "+2Y"
});
});
</script>Ezt a sort meg nem tudom értelmezni, hogy mi az a 3 paraméter és miért úgy van :|$( "#tav_datum" ).datepicker( "option", "minDate", tavozas);
Ezt ide kellene beírnom valahogy?
$(document).ready(function(){
$("#tav_datum").datepicker({ ...A 7 nap meg csak pl. volt, tehát a beadott érk. dátumból kellene kivonni a mai dátumot, hogy megkapjam a való számot.
Ha kivonom pl. 2011.12.12.-ből a 2011.12.8-at, akkor azt meg lehet csinálni, hogy egy sima szám legyen az eredmény? (most ugye 4)Tehát, ha jól szedné ki a dátumot, csak ki kéne vonni a mait, számmá konvertálni és beadni, ha jól gondolom.
Na szenvedek vele tovább, hátha google is tud segíteni.
köszi
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
3 dolog:
1.) egy kicsit rövidebben, a minimálisra redukálva a tök felesleges infók mennyiségét: mit is szeretnél? Már nem volt agyam az egészen átrágni magam, mert annyira hosszú volt (meg mert annyira késő van, és ilyenkor a francnak sincs kedve novelláskötetekbe illő hsz.-eket olvasni ).
Tehát: van két meződ, egy az érkezési dátumnak, másik a távozási dátumnak.
Miután kiválasztottad az érkezési dátumot, akkor automatikusan választódjon ki a távozási dátum úgy, hogy az érkezési dátumhoz képest hozzáad mondjuk egy hetet?2.) Ne akarj semmit frissítgetni window.location.reloaddal és hasonlókkal, mert akkor előtte valamilyen módon a már kiválasztott értékeket el kéne mentegetned, majd az oldal-újratöltés után ezeket előkotorni, stb... felesleges.
3.) Légy olyan jó, és pakold fel az eddigi példakódjaidat jsfiddle-re: [jsfiddle.net]. Itt be tudod húzni a jQuery UI-t is úgy, hogy előbb bal oldalt kiválasztod valamelyik jQuery-könyvtárat, aztán bepipálod, hogy rakja már hozzá a UI-t is.
Egy egyszerű példakódot írj ide, hogy ne nekünk kelljen ennek a megírásával tökölni.
Ha ez megvan, akkor ezerszer egyszerűbb lesz közös nevezőre jutni, és gyorsabban megkapod a megoldást.Sk8erPeter
-
Cathfaern
nagyúr
válasz Sk8erPeter #487 üzenetére
Annyit szeretne, hogy ha kiválasztotta az érkezési dátumot, akkor utána a távozási dátumot ne lehessen az érkezési dátumnál korábbra állítani (mindezt a datepicker minDate-je segítségével)
-
martonx
veterán
válasz Sk8erPeter #487 üzenetére
De ő nem JQuery UI-t használ, hanem valami spéci datepicker plugint.
Amúgy totál igazad van a többi pontban.Én kérek elnézést!
-
martonx
veterán
-
cAby
tag
válasz Sk8erPeter #487 üzenetére
Szia!
Cathfaern jól összefoglalta, hogy mit szeretnék megcsinálni (köszönöm):
"Annyit szeretne, hogy ha kiválasztotta az érkezési dátumot, akkor utána a távozási dátumot ne lehessen az érkezési dátumnál korábbra állítani (mindezt a datepicker minDate-je segítségével)"Gondolom, ha ez menne, akkor azt is meg lehetne könnyen, hogy ha valaki a távozásit választja ki előbb, akkor az érkezésinek csak annál korábbi értéket lehessen megadni (max a mai napig persze)
Fetöltöttem ide, ahogy kérted: [link]
css-t nem tettem bele, mert nem lényeg ugye. -
Sk8erPeter
nagyúr
Mi sem egyszerűbb! Elkészítettem neked, szerintem jól látható, mit is kell csinálni, és működik: [http://jsfiddle.net/wfgTu/1/].
A másik Datepickernek egyszerűen beállítottam a minDate opcióját úgy, hogy kiszedtem az érkezési dátumból a megfelelő értéket. Szerencsére nagyon könnyen kezelhető, nem kell külön parse-olgatni (elintézi magának), elég volt ennyi:$("#arrival_date").datepicker({
dateFormat: 'yy.mm.dd',
minDate: 0,
maxDate: "+2Y",
onSelect: function(dateText, inst) {
var selected_arrival_date = $(this).val();
$('#selected_date_arrival').html( selected_arrival_date );
$("#departure_date").datepicker( "option", "minDate", selected_arrival_date );
}
});Ja, a magyar nyelvű változóneveket és markupokat kiszedtem, mert szerintem nem jó szokás a használatuk.
Szerk.: most látom, hogy azt is szeretnéd kezelni, ha valaki a távozási dátumot választja előbb - még belefértem a szerkesztési időbe >> itt az is kezelve van: [http://jsfiddle.net/wfgTu/2/].
============
(#488) Cathfaern : kösz az értelmezést, egy mondatban elég jól összefoglaltad a lényeget.
(#489) martonx : Cathfaern már írta, de azt használ, amúgy ott is van alul az a mondat, hogy "A plugin-nal kapcsolatos további információkat (pl. események, metódusok) a datepicker oldalán találsz."
Végül is az kifejezetten jó, hogy van magyar nyelvű magyarázat is hozzá, jó a kezdeményezés.[ Szerkesztve ]
Sk8erPeter
-
cAby
tag
válasz Sk8erPeter #495 üzenetére
Szia!
Átnéztem a kódot, így értem, hogy mit csinál, más dolog, hogy ilyen megoldásra 1000%, hogy nem jöttem volna rá.
Szakdoga és államvizsga után ennek a tanulására állok rá, ez most dőlt el.. zavar, hogy ilyen alap dolgokat nem tudok.Nagyon szépen köszönöm a gyors és hatékony segítséget!
szerk.: Esetleg valaki tud javasolni egy jó könyvet, amiben érthetően vannak leírva egy kezdő számára a dolgok?
[ Szerkesztve ]
-
Brown ügynök
senior tag
Szeretném egy callback fv. eredményét átadni egy másik fv. de valamit elnézek. A lényeg, hogy a get_upload_rights fv.-ben a right először undefined, majd legközelebbi hívás alkalmával a callbacknek köszönhetően a megfelelő adattal tér vissza (mondjuk 1). Ám ez nem adódik át az access változónak, ott undefined marad. A függvények a JsTree-ből vannak.
create : function () {
var access;
access = this.get_upload_rights(obj);
alert(access);
if(!access) {
alert('Nincs joga ehhez a művelethez!');
return false;
}
}
get_upload_rights : function (obj, right) {
alert(right);
if (right == undefined){
if ($obj !== false) this.__callback({'obj' :$obj, 'right': function () {
get_upload_rights($obj, right)
}});
}
else if (right == 1) {
return true;
}
else {
return false;
}
}[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
martonx
veterán
válasz Brown ügynök #498 üzenetére
Ez a függvény így hibásnak tűnik.
if (right == undefined){
if ($obj !== false) this.__callback({'obj' :$obj, 'right': function () {
get_upload_rights($obj, right)
}});
}Mert itt mit is látunk? Ha a right undefined, akkor lesz igaz a feltétel.
Majd meghívod a függvényt újra immár a right paraméterrel viszont az undefined.
Ez így ránézésre végtelen ciklusnak tűnik.Én kérek elnézést!
-
Brown ügynök
senior tag
Új hozzászólás Aktív témák
- HP Probook 340S G7 i5-1035G1/8GB/256SSD/Windows 11 -10% Csak ameddig a készlet tart!89.780 Ft
- iPhone 14 Pro 128 GB Space Black, 11 hónapos, kártyafüggetlen, 2024. május végéig garis , akku 91%
- Asus VivoBook X509JA-BQ904T
- HP EliteBook 640 G9 Ezüst (14" / Intel i5-1235U / 16GB / 512GB SSD / Win 11 Pro) -10% Most 203.990 F
- Lenovo M810z AIO Core I5 6400 4x2700/8GB/120G SSD/wifi/cam 21,5 -10% 66.950 ft