- Minden a BlackBerry telefonokról és rendszerről
- Android alkalmazások - szoftver kibeszélő topik
- Yettel topik
- Okosóra és okoskiegészítő topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Milyen okostelefont vegyek?
- iPhone topik
- Bemutatkozott a Poco X7 és X7 Pro
- Samsung Galaxy A54 - türelemjáték
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
-
Male
nagyúr
Akkor is egy helyen kell karban tartani, hiszen ugyan azt a függvényt hívja meg mind, elég a függvényt szerkeszteni.
Cathfaern: Igen, ha annyira el akarom különíteni a HTML-től, csak ha meg class alapján rendelem hozzá, akkor hozzákötöm a stílushoz is tulajdonképpen, ami meg máshol lehet nehézség (pl máshol is azonos stílust alkalmaznék egy gombra, de más event kell neki, vagy éppen egy dizájn módosításnál a gombok egy részét megváltoztatnám, de akkor emiatt a JS-t is át kell írni, hogy a módosítottakhoz is hozzárendelődjön).
-
Siriusb
veterán
Pont tegnap botlottam bele a Sass-ba és egy *picit* beleolvastam. Jól értem, hogy a sass ill. less segítségével megírod a stylesheet-et (változók használata nagyon szimpatikus) és utána rendereled a böngészők számára használható formába? Úgy látom van valami less.js is, ez valamiféle csökkentett funkcionalitással bír?
-
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?
-
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. -
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/ -
Karma
félisten
Oké, szóval vegyük úgy, hogy ezt akartam először linkelni
Nem csak a layout borult meg, ha több ilyen magicbox van a képen. De most már javítottam.
-
-
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.
-
martonx
veterán
Én jellemzően magunknak fejlesztek. A böngésző statisztikákat nézve az IE6-7 már most is teljesen marginális, az Ie8-nak még van vagy 15%-os részesedése (nálunk is ez van jelenleg), de a trendeket elnézve 2013 végére az IE6-7-8 együttesen is 5% alá fog esni. 2014 végére meg, amikorra lesz itt Jquery 2.0 valahova 1% környékére várom az IE6-7-8 globális részesedését.
-
martonx
veterán
Én párszáz gépes környezetben dolgozok, és nálunk 2013-ra tervezik a win7 átállást (mondjuk vicces, mert addigra lesz 1 éves a win8). Azért, amelyik cég 2014-re is egy akkorra 13 éves oprendszert használ, ott komoly gondok vannak. Ráadásul (nálunk legalábbis), az IE8 nagyon erősen behatárolja a belső IT fejlesztési lehetőségeket is, már csak ezért is előbb-utóbb rákényszerülnek a cégek a váltásra.
-
Karma
félisten
Kis addendum: ez még mindig quick hack kategória, sajnos vannak lekezeletlen problémák, pl. az ékezetes karakterek a toUpperCase miatt nem biztos hogy megmaradnak, vagy a $(options[index])-et se kéne ismételni...
Szóval kéretik nem véglegesnek tekinteni, és kézzel csiszolni rajta felhasználás előtt
(Vagy inkább a jQuery UI-t használni.)
-
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. -
martonx
veterán
"Modern böngészőkben meg semmi szükség JSONP-vel kockáztatni" - azért cross-domain esetben a jsonp-t érdemes használni, böngésző modernség ide-vagy oda.
Illetve lehet json is, ha a szerver oldal rendesen fel van készítve a cross-domain-re, meg ha bevállalják, hogy dupla kommunikáció történik minden egyes json adatcserekor (kommunikáció 1. a böngésző megkérdezi a szervert, hogy működik-e cross-domianben, majd kommunikáció 2. ha a jól felkészített szerver erre igen-nel felel, akkor mehet a cross-domain json akár POST-tal is GET helyett). -
Lacces
őstag
Igen, a size() tényleg nem "javasolt" sztringnél, hanem a length(), csak, hogy mikor melyiket használjam, ezt még szoknom kell.
each és map-en gondolkoztam, hogy melyik, valahol sejtettem, hogy az each csak végig megy rajta. De most már tudom, hogy akkor a map kapja vissza.Ezt az var options = $('#projectlist option');-nél az attr-osat láttam neten. Ezt onnan szedtem.
Egyébként az onkeyup()-ot, hogy törölni kellett, az nekem egy kicsit furcsa, mert kipróbáltam, hogy egy másik input text-ben is megjelenítem a tartalmat, amit az első input text-be gépelek be... és megjelent. Én ezért mertem alkalmazni az onclick=onkeyup-ot
.
De így is jó, ahogy mutattad.
Amúgy ez a logolás tetszett, meg a jsField is. ahogy itt lehet próbálgatni
. Új ablakot adott a jquery-s programozói világomba.
Meg a végén megkaphatom a linket?Közben én is nézem. Érdekel, ezt a tömbök kiíratását te hogyan csináltad, tanulni akarok belőle. Ez a log is tetszett amúgy.
array-like objektumról - igen, sejtem. Java alapján jött elő belőlem, de hmm... Majd a foreach-es property-ről tudnál nekem oldalt ajánlani?
Ami kitárgyalja ezt a témát. Érdekel.
Sejtem valahogy, mert a Java-ban is van a "primitív tömb - a C nyelvből" és van az ArrayList, ami generikus és foreach-el bejárható.
De ez a property kezelés az számomra furcsa, és a gondolkodásom miatt lehet sokszor használnám... -
Karma
félisten
Most itt tartok, a helyzet az, hogy a for (var index in options) nem jó, mert nem tényleges arrayről van szó, hanem array-like objektumról. A foreach struktúra minden extra property-t visszaad, így pl. az index nem csak szám, hanem "length" string is lehet.
Erre van több megoldás, pl. a hasOwnProperty függvény, vagy a $.makeArray(), a .toArray(), vagy átállni normális for ciklusra.
-
Karma
félisten
A logoló sorok amiket beraktam marhaság, kísérletezésnél ajánlom törölni
Az eachek mapre cserélése segített a másik értékeknél.
A size() helyett length tényleg jó
, már csak az marad, hogy az "options" undefined, hiszen az az attr hívás nem kóser. Szerintem simán jQuery-vel ki kéne szelektálni őket, mint később a törlésnél: var options = $('#projectlist option');
Aztán kiderül jó-e.
-
Male
nagyúr
Igazából nem értem, hogy lehetne ezzel bármi problémát is okozni. Oké, elküldheti máshová a választ, de ezzel mit ér el? Semmi olyan infó nem megy ki, amit eltérítés nélkül nem tudna megszerezni, hiszen a saját gépére menne különben
Köszi a linkeket, elolvasom, hátha abból kiderül
-
Lacces
őstag
Ez a jsField nekem még vadiúj
.
Összeraktam egyet. Itt a link Így jó összerakva?
HTML-t adtam meg a Jquery függvényt, meg oldalt kijelöltem amit kell. -
papa019
senior tag
Közben elkezdtem nézegetni a hivatalos dokumentációt.
Addig eljutottam, hogy [object Object] a kimenet, ha minden dolognak az id-jét és a nevét írom ki, lassan sikerülni fog remélhetőleg.
Már csak azt nem tudom, hogy a php-ben hogyan tudom átírni, hogy a visszaadott adat típusa json legyen és ne text/html... -
papa019
senior tag
Jelenleg így generálom a JSON-t (ajaxLoad.php):
$result = $DB->prepare("SELECT * FROM places");
$result->execute();
$result->setFetchMode(PDO::FETCH_ASSOC);
while($row = $result->fetch())
{
$rows[]=$row;
}
//var_dump($rows);
echo json_encode($rows, JSON_UNESCAPED_UNICODE);A jelenlegi adatbázis alapján pontosan ezt az adatot generálja (nem tudom, hogy ez szabványos JSON formátum-e, nekem annak tűnik):
[{"id":"1","name":"a","description":"a","address":"a","wikipedia":"a","points":"","category":"62","parent_area":"7","parent_has_parent":"1"},
{"id":"2","name":"123213","description":"123123","address":"123","wikipedia":"123123","points":"","category":"70","parent_area":"0","parent_has_parent":"0"},
{"id":"4","name":"as","description":"as","address":"as","wikipedia":"as","points":"","category":"69","parent_area":"0","parent_has_parent":"1"},
{"id":"5","name":"asd","description":"asd","address":"asd","wikipedia":"asd","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"6","name":"asfd","description":"asd","address":"sad","wikipedia":"asd","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"7","name":"asfd","description":"asd","address":"asd","wikipedia":"sad","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"8","name":"asfd","description":"asd","address":"asd","wikipedia":"sad","points":"","category":"62","parent_area":"4","parent_has_parent":"0"},
{"id":"9","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"68","parent_area":"1","parent_has_parent":"0"},
{"id":"10","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"70","parent_area":"9","parent_has_parent":"0"},
{"id":"11","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"69","parent_area":"1","parent_has_parent":"0"},
{"id":"12","name":"1","description":"1","address":"1","wikipedia":"1","points":"","category":"69","parent_area":"9","parent_has_parent":"0"},
{"id":"13","name":"1","description":"2","address":"34","wikipedia":"4","points":"","category":"70","parent_area":"4","parent_has_parent":"1"},
{"id":"14","name":"1","description":"11","address":"1","wikipedia":"1","points":"","category":"70","parent_area":"4","parent_has_parent":"0"},
{"id":"15","name":"1","description":"11","address":"1","wikipedia":"1","points":"","category":"62","parent_area":"1","parent_has_parent":"1"},
{"id":"16","name":"","description":"","address":"","wikipedia":"","points":"","category":"70","parent_area":"1","parent_has_parent":"1"}]És jelenleg mint gyors "megoldás", megpróbáltam Sk8erPeter kolléga korábbi kódját használni a feldolgozásra (pár hónapja segített egy másik json fájl feldolgozásában):
$.getJSON(json_file_path, function(data) {
var items = [],
list_html = '';
$.each(data.folder, function(key, val) {
var list_item_actual = '',
list_inner = {};
list_item_actual += '<li id="' + id + '">' + '<u><b>' + name + '</b></u>' + '<u><b>' + description + '</b></u>' + ',<br />' + 'address: ' + address + ',<br />' + 'wikipedia: ' + wikipedia + ',<br />' + 'points: ' + points + ',<br />' + 'cat: ' + category + ',<br />' + 'parent: ' + parent_area + ',<br />' + 'par: ' + parent_has_parent + ',<br />';
list_inner = $('<ul/>', {
'id': 'my-polygon-list-' + key,
'class': 'my-polygon-list',
html: list_items_inner.join('')
});
list_item_actual += list_inner.html();
list_item_actual += '</li>';
items.push(list_item_actual);
});
list_html = $('<ul/>', {
'id': 'my-location-list',
'class': 'my-new-list',
html: items.join('')
});
$('#get_informations').html(list_html.html());
});Szinte biztos voltam benne, hogy nem fog működni itt, de azért próba szerencse alapon megpróbáltam.
-
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).
-
Male
nagyúr
Kb jól sejted, az pedig egyáltalán nem gond ebben az esetben, ha addig megfagy az oldal, hiszen addig ne is tegyen vele semmit a felhasználó.
Most ezt komolyan nem is lehet megoldani?
(A deferred.done()-t meg tudom hívni a success részen, és ha az oda szánt részt a deferred.done() callbackjébe teszem, akkor végülis elértem a "szinkronitást", amit akartam, hiszen a successbe szánt rész csak akkor fut le, amikor az animáció már végzett. Már ha jól értem a működését.)
-
papa019
senior tag
Tökéletesen működik, köszönöm.
Step-by-Step dialog boxhoz nem tudtok valami jó tutorialt?
Nekem egy formhoz kellene, minden oldalon lenne mondjuk 2-3 szövegdoboz és egy next gomb, majd az utolsó oldalon a mentés. Még nem igazán találtam olyan megoldást, ami egy form esetén jó. -
papa019
senior tag
Ez van a függvényemben:
function country_load(){
$('.country').load("country_load.php");
$('.country').chosen({no_results_text: "No results matched"});
});Ez a php:
<?php
include 'config.php';
$result = $DB->query("SELECT * FROM categories");
//echo '<option selected="selected">-- Válassz kategóriát --</option>';
$result->setFetchMode(PDO::FETCH_ASSOC);
while($row = $result->fetch())
{
$id=$row['id'];
$category=$row['name'];
echo '<option value="'.$id.'">'.$category.'</option>';
}
$DB = NULL;
?>Ez a form ide kapcsolódó része:
<label for="country">Ország:</label>
<select data-placeholder="Válassz országot" name="country" class="country" style="width:350px;" ></select><br /> -
TonTomika
aktív tag
Huhh srácok, köszi a sok jó választ.
Megpróbálok szépen sorban válaszolni mindenre.
Az első gondolatom nekem is az volt, hogy keresek egy már megírt scriptet a menüre, találtam is egyet, csak nem vált be, nem tudtam rendesen ráhúzni az én menümre. Viszont ez a Superfish jónak tűnik, ezt mindenképpen megnézem!
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. 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.
Ezen kívül még elég sok megkötés volt, ezért gondoltam hogy egyszerűbb egy kis sajátot írni, főleg úgy hogy szerettem volna gyakorolni a php-t. De ezzel nem is volt probléma, csak a jQueryvel szívok mindíg.
Ez class dolog nem is értem, hogy miért nem jutott eszembe, tényleg teljesen egyértelmű, ezt benéztem.
Nem frameset, annyi az egész, hogy minden aloldal egy php include-al meghívja az azonos oldal elemeket.
A menüt sima html-ben írtam meg, kivéve csak a változó <li> elementnél van egy mysql_fech_array függvény. Ez az adott kategóriához tartozó projektnevű linkeket generálja le, tehát pl csak az enteriőrtervezéshez használtakat.
Apropó, találtam a tutsplus.com-on egy olyat, hogy jQuery 30days ingyenes videós tananyag. Ezt lehet hogy érdemes lenne végigtolnom...
Köszönöm még egyszer a jótanácsokat!
-
Karma
félisten
Kiegészítendő az előzött egy kicsit, a menük nyitott/csukott állapotát is praktikus egy classal jelölni, így egy tök egyszerű hasClass hívással meg tudod állapítani, hogy egy adott elejű milyen állapotban van.
Másrészt a példakódom nem jó, mert a kattintott elem tűnik el, pedig az csak a fejléc (amiknek mindig láthatónak kellene maradnia. Így a valódi megoldás kicsit bonyolultabb, de mobilról nem mennék bele, bocs.
Amúgy legördülő menükről nemrég szólt a topik már egyszer, elég részletesen.
martonx: jaja tényleg, meg is akartam említeni
A CMS-re a "DB-ből dinamikusan letöltött aloldalak" miatt gondoltam főleg.
-
martonx
veterán
-
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
nagyúr
Igen, igazából itt nem is igazán indokolt ennek az iterációnak a használata, de hirtelen elsőre az jutott eszembe, és tulajdonképpen így, a tömb teljes ismeretében úgy gondoltam, hogy nagyjából most mindegy, mit használok - de egyébként igazad van, előfordul olyan objektum, ahol hülyeségek jöhetnek ki belőle még akkor is, ha látszólag ismered az objektum teljes szerkezetét. Előfordult már, hogy bejártam egy szerveroldalon legenerált objektumot ilyen módon, és baromságok jöttek ki belőle.
Mondjuk akár debuggoláshoz ez még jól is jöhet.Az megint másik kérdés, hogy ez egy sima tömb, és itt van egy elvárt struktúra, tehát max. akkor jönnek ki belőle baromságok, ha valamit elcseszek a kódban. Az ellen meg a sima indexelt for ciklus sem véd meg. Tehát itt lényegében szerintem tényleg mindegy, mivel járom be.
Viszont mivel már találkoztam egy párszor ezzel a hibaüzenettel, úgy gondoltam, már érdemes rákérdezni, mi a franc baja van ezzel. De igazából úgy tűnik, erre nem jöttünk rá.
Legalábbis a hibaüzenet ebben a formában értelmetlen és valótlan, meg számomra legalábbis semmit nem árul el arról, hogy mégis konkrétan mi a rossz benne. Miért kellene a "first" property-t állítani? Honnan jön ez? (Költői kérdések! De ha van rájuk válasz, szívesen fogadom.
)
DE érdekes, hogy amennyiben így írom:
var i = 0;
for (i in myLinks) {
....
}...akkor ez előző hibaüzenet megszűnik, jön az újabb:
"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype."
(Most ebben nem ez utóbbi hibaüzenet az érdekes, hanem hogy megszűnt a korábbi parája a "first" property-vel!)És a megoldás:
var i = 0;
for (i in myLinks) {
if (myLinks.hasOwnProperty("text") && myLinks.hasOwnProperty("text")) {
...........
}
}Miért nem rinyál, ha deklarálok neki a cikluson kívül egy i változót?
Ja, amúgy azt előbb elfelejtettem írni, hogy bocs, hogy ide írtam a kérdésem, igazából nem egy jQuery-téma (szóval OFF), de a sima JavaScript topicban kevésbé látlak Titeket (ahova igazából ez való; bár igaz, mondjuk Te épp szoktál ott is aktívkodni), ezért írtam ide.
-
Sk8erPeter
nagyúr
Azt kérdezte eredetileg, idézem:
"mint ami itt a PH!-n van tag (félkövér, programkód, stb stb) beillesztésekor, ahol a kurzor van"
A berakott kódnak és jsFiddle-demónak meg a PH!-s félkövérítéshez és egyéb formázások tagjait létrehozó gombokhoz semmi köze - ahogy korábban írtam is. Ha úgy kérdezte volna, hogy olyat akar, mint ami a smiley-knál ("kattintható arcocskák") van, hogy a kurzor helyére bebiggyeszti az előre rögzített szöveget, nem keresgélve az adott szó elejét és végét, hogy azután köréjük pakolja a megfelelő tageket, akkor úgy egyből érthető lett volna, mi a szándéka... (kérdezni is tudni kell)
-
Jim-Y
veterán
Azt azért raktam bele..vagyis, inkább ott kezdem, hogy azt csinálja, hogy ha a * -ra kattint, akkor a táblaneveket helyettesíti be, ezeket (`datetime_created` `client_version` `realm_name` `username` `activity_data`). Azt csak most látom én is, hogy frankón végtelen a ciklus, azóta ezt úgy tűnik javítottam, mert nálam jól működik. Erre azért van szükség, mert php oldalon, ha lekérem adatbázisból a táblát azzal az SQL lekérdezéssel amit itt az oldalon összeállítok, akkor könnyebb az oszlopokat indexelni. ha * marad az SQL-ben, akkor nem tudok olyat csinálni a php kódban, hogy $result_data[$i][$index_array[$j]] ahol a result_data az adatbázisból kinyert adat, az index array, pedig épp az, amire a *-ot cseréltem a jquery kódban, tehát (`datetime_created` `client_version` `realm_name` `username` `activity_data`)..
A <,> jeleket átírtam, köszi
-
Jim-Y
veterán
-
-
vakondka
őstag
OK, látom nemhiába vagy PH félisten
Ez így működik, de korrekt is?
$(function() {
//klikk megakadályozása majd ajax betöltés
$("body").on("click", "a[href*='-c-'], a[href*='-p-'], a[href*='extra_info_pages.php'], a[href*='create_account.php']", function(e) {
var a_href = $(this).attr('href');
var content = $('#column_content');
e.preventDefault();
content.fadeToggle();
content.load(a_href +' #column_content');
content.fadeToggle();
//return false;
});És még ezt kellene módosítani valahogyan, hogy működjön dinamikus tartalom esetén is...
// Buborék
$('.bubbleInfo').each(function () {
// options
var distance = 10;
var time = 250;
var hideDelay = 500;
var hideDelayTimer = null;
// tracker
var beingShown = false;
var shown = false;
var trigger = $('.trigger', this);
var popup = $('.popup', this).css('opacity', 0);
// set the mouseover and mouseout on both element
$([trigger.get(0), popup.get(0)]).mouseover(function () {
// stops the hide event if we move from the trigger to the popup element
if (hideDelayTimer) clearTimeout(hideDelayTimer);
// don't trigger the animation again if we're being shown, or already visible
if (beingShown || shown) {
return;
} else {
beingShown = true;
// reset position of popup box
popup.css({
top: -80,
left: 0,
display: 'block' // brings the popup back in to view
})
// (we're using chaining on the popup) now animate it's opacity and position
.animate({
top: '-=' + distance + 'px',
opacity: 1
}, time, 'swing', function() {
// once the animation is complete, set the tracker variables
beingShown = false;
shown = true;
});
}
}).mouseout(function () {
// reset the timer if we get fired again - avoids double animations
if (hideDelayTimer) clearTimeout(hideDelayTimer);
// store the timer so that it can be cleared in the mouseover if required
hideDelayTimer = setTimeout(function () {
hideDelayTimer = null;
popup.animate({
top: '-=' + distance + 'px',
opacity: 0
}, time, 'swing', function () {
// once the animate is complete, set the tracker variables
shown = false;
// hide the popup entirely after the effect (opacity alone doesn't do the job)
popup.css('display', 'none');
});
}, hideDelay);
});
});így nézne ki: [link]
-
Speeedfire
félisten
Hiszek neked.
Más:
Egy függőleges ul-li-ul-li dolgot akarok összerakni, csak egy gondom van nem tudom milyen js scripttel lehet megoldani azt, hogy ha az ul-li-re megyek akkor az alatta lévő ul rész normálisan látszódjon. Most csak annyit írtam css-be, hogy:ul li:hover {
display:block
}Viszont az alatta lévő tartalom nem mozog lefele.
Valami ilyesmi, csak nem nem WP-re.
-
Sk8erPeter
nagyúr
Na basszus, erre magamtól is rájöhettem volna hülyeségek kérdezgetése előtt.
Köszi!
Akkor viszont egyértelmű, hogy a delegate-nél meg on-nál jellemző selectorra való szűkíthetőség teljesítmény szempontjából sokkal jobb lehet, mint az, ami a .live()-nál jellemző, hogy az egész documentre kötjük rá (hatalmas dokumentumnál gondolom jól kijöhet a különbség bencsmárkokkal).===
Amúgy nem tudom, észrevettétek-e, de a jQuery oldala nagyon sokszor szarakodik mostanában, van, hogy egyszerűen nem érhető el a szerver. Előbb megint meg akartam nézni a doksit, és az oldal már megint behalt.
Most megnéztem cache-ből, ott tényleg látszik, amit írtál (korábban már én is kimásoltam ezt a részt, nem tudom, most miért voltam olyan agyatlan, hogy ezt elfelejtettem):
"Rewriting the .live() method in terms of its successors is straightforward; these are templates for equivalent calls for all three event attachment methods:
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+"Én azért kitettem az idézőjeleket, nem úgy, mint - most már - egykori köztársasági elnökünk.
-
Brown ügynök
senior tag
-
Speeedfire
félisten
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);
});
}); -
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...
-
Sk8erPeter
nagyúr
"This feature and its documentation are in beta and subject to change before final release."
De ebben nincs benne, hogy már nem is fejlesztik tovább!Basszus, mindig rácsodálkozom, még JS-ből is mennyit lehetne és kellene fejlődni. A JavaScriptMVC-t sem volt még alkalmam kipróbálni, pedig rohadtul kéne. Inkább szopattam magam durván komplex kódok írásával.
De ez most eléggé felkeltette az érdeklődésemet.
A JavaScriptMVC-be gyorsan beletanultál?Tök más tészta, de Ext JS-t Ti már használtatok?
-
Sk8erPeter
nagyúr
Zsír.
Gondolom a "type" megadásával.Ja tényleg, van még egy ilyen is (.template()). Ezzel kapcsolatban tapasztalat? Hogy mondjuk miért nem érdemes használni vagy éppen miért igen? (pl. a másikkal szemben, ami nyilván robusztusabbnak tűnik)
(#442) martonx : és ha valaki nem a Razor syntax-t használja?
Akkor gondolom avvvvan, amit írtam.
-
Sk8erPeter
nagyúr
Jaja, "szemantikailag" nem túl szép, hogy keverve van a JS-kód a HTML-kóddal.
Ez az EJS igen jó, nekem a kliensoldali template-ezés terén viszont bőven vannak hiányosságaim, eddig élesben még nem használtam, pedig eléggé van létjogosultsága.
Egyébként konkrétan itt az EJS-nél ezek a template-ezéshez szükséges <%= nyitó- és %> zárótagek bizonyos esetekben nem okozhatnak problémát amiatt, hogy az ASP/ASP.NET short tagek is pont ugyanígy néznek ki?
====
(#439) Frigo :
igen, teljesen igazad van, most meg is néztem konkrétan 1.7.1-nél:
jQuery.fn.extend({
on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
..........
},
..........
live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
},
.......
delegate: function( selector, types, data, fn ) {
return this.on( types, selector, data, fn );
},
..........Viszont mivel ez valóban így van, ez kérdésessé teszi számomra a teszt értelmét.
Akkor legfeljebb a plusz függvényhívás ideje adódik hozzá elméletben a közvetlenül történő .on() híváshoz... -
Sk8erPeter
nagyúr
Lehet ezt még kombinálni más módon is validra:
1.) [link]
2.) [link]
Utóbbi talán még áttekinthető is. Továbbra sincs szükség tehát a tömbösítésre.Ez a teszt igazából elég megtévesztő, mert megint csak akárhányszor futtatom, más jön ki, pl. a .delegate() on document sokszor gyorsabbra jött ki, mint az .on() on document, persze nem olyan meglepő, mert gondolom függ attól is, hogy épp nem terhelte-e valami folyamat a procit, vagy tököm tudja, de én igazából nem tudtam levonni a konklúziót, hogy most az .on() hű de sokkal gyorsabb. Mindenesetre köszi, érdekességnek jó lesz később is lefuttatni más böngészőben!
-
Sk8erPeter
nagyúr
Bocs, totál félreértettem az imént, amit írtál, azt hittem, a második felére írtad a teljesítménybeli dolgot (az .on() függvény használatára, feltételezem, az sem vezet az optimális kódhoz, hogy jövőben létrejövő elemre kötsz eseményt, de mivel erről még tesztet, mérést nem láttam, ez egyelőre csak "spekuláció"). Így már világos!
Viszont most megnéztem, amit írtál, és a validálási parát stringgel nem igazán értem, mert így, stringre átírva is JSLint-valid a kód, igaz, itt "ömlesztve" van a kód, nincs sorokra szétbontva, talán átláthatóság szempontjából kevésbé jó, de mondjuk jelen esetben ez kevésbé számít.
Szerk.: most látom, az eredeti kódban is lemaradt a záró </div> tag, így igazából ez lenne a valid változat.
-
Sk8erPeter
nagyúr
Ja, hát nyilván nem a legszebb megoldás, valóban ronthatja a teljesítményt, de ki a franc veszi azt észre?
Kliensoldali kód optimalizálása persze nem egy kinevetendő dolog, de a legtöbbször, pl. tipikusan weblapok esetében az ilyen jellegű "spórolás" tulajdonképpen a gyakorlatban teljesen felesleges. -
TonTomika
aktív tag
Köszi!
A példaoldalak közül pont megtaláltam a nekem kellő megoldást is!
Másra egyelőre nem hiszem, hogy használnám, bár a fentebb említett plugin most hozott egy rahedli új ötletet, de tartom magamat az eredeti koncepcióhoz.
-
Speeedfire
félisten
Varázsolni? Hát...
A css rész most így néz ki ami erre vonatkozik:
.kor {
width: 20px;
height: 20px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
-moz-box-shadow: 0px 0px 5px #000;
-webkit-box-shadow: 0px 0px 5px #000;
box-shadow: 0px 0px 5px #000;
background-color: #e5e5e5;
margin: 5px;
float: left;
}
.kor.active {
background-color: #008000;
}Illetve, ahogy nézem a js sem megy. Ezt írja a js-re:
Uncaught SyntaxError: Unexpected token ILLEGALA weben pedig jó...[link]
-
Speeedfire
félisten
Meglett a hiba oka, eleve rosszul írattam ki a php-val a kör class-nál az id-t és amiatt ilyen lett id="kor-""1". Ez volt a gond vele.
De átírom az egészet, olyanra amilyenre javasoltad, elegánsabb mint ez enyém.
Viszont a netbeans nekem sír a .kor.active miatt és a css is összeesik...
Invalid content azt írja.
-
jeges
senior tag
attól, h jelen esetben nem csak a "számokon" megy végig, nincs tiltva ellenőrizni a kulcsot (hogy csak egy lehetséges megoldást említsek), de erre kitérni nem volt célom, s a kérdés sem erre vonatkozott értelmezésemben, hanem a hivatkozás mikéntjére általánosan.
a "ne a gyökérbe pakoljunk adatsorokat" megjegyzéssel maximálisan egyetértek, ugyanezt javallottam magam is korábban. -
Brown ügynök
senior tag
-
Brown ügynök
senior tag
@jeges: Valóban nem szükséges parsolni. Viszont megint nem értek valamit:
for(var i = 0; i < data.length; i++){
var obj = data[i];
str = "<ul id='pager'><li value='1'>Első</li><li value='" + ( (obj.page > 1 ) ? obj.page - 1 : 1 ) +"'>Előző</li> ";
str += "<p >"+ obj.page +"/"+ obj.maxpage +"</p> ";
str += "<li value='"+ ( ( (obj.page + 1) > obj.maxpage) ? obj.maxpage : obj.page + 1 ) +"'>Következő</li> ";
str += "<li value='"+ (obj.maxpage) +"'>Utolsó</li></ul> ";
}Az első és előző listaelem megjelenik, viszont a többi sorban a page-ket undefined-nak látja. Ez miért van?
-
Brown ügynök
senior tag
$.post-t használok. A kód:
function screenPagination($page){
var $color = $('#color').val();
var $size = $('#size').val();
var $order = $('#order').val();
var $url = $("#searchAjaxProduct").val();
$.post($url, { color: $color, size: $size, order: $order, page: $page},
function(data){
if(data.length > 0) {
var pager = $( data ).find( '#pager' );
var content = $( data ).find( '#content' );
$('.nav article').empty().append( pager );
$('#products').empty().append( content );
});
}
}A tartalmat csak akkor rakja be, ha az egész data-t berakom és nem keresem, hogy akkor honnan rakja be. Lehet, hogy Json-be kellene az adatokat lehívni és kliens oldalon összeállítani a kódot...
-
Speeedfire
félisten
Ez lett a vége, így minden okés. A selectorokkal kellett csak kicsit játszani a 2. résznél.
$(document).ready(function() {
if($('.gv_galleryWrap').length != 0) {
$("#munkaim").click(function() {
window.location.href='munkaim';
});
$(".gv_gallery").click(function(e) {
e.stopPropagation();
});
}
});
Új hozzászólás Aktív témák
Hirdetés
- Bomba ár! Lenovo ThinkPad T15 G1 - i5-10GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
- VÉGKIÁRUSÍTÁS - REFURBISHED - Lenovo ThinkPad 40AC Thunderbolt 3 docking station
- AKCIÓ! Apple MacBook Pro 16 M4 Pro - M4 Pro 24GB 512GB SSD garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest