- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- Honor 400 Pro - gép a képben
- Apple iPhone 16 Pro - rutinvizsga
- India felől közelít egy 7550 mAh-s Redmi
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Xiaomi 15 - kicsi telefon nagy energiával
-
Mobilarena
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2386 üzenetére
Szívesen! Sok sikert.
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2384 üzenetére
Ne add fel, hidd el, az elején én is csak kapkodtam a fejem, hogy "most mi va'? Semmit nem értek."
Aztán szép lassan összeáll a kép, de azt az ember nem ússza meg, hogy sokat olvasgasson utána.
A header() akkor szokott hibát okozni, ha van bármiféle kiírás még a fejlécek kiküldése előtt. Elég akár egyetlen szóköz is ahhoz, hogy probléma legyen. Vagy pl. a karakterkódolási probléma: UTF-8 BOM-mal - na az nem jó, mert kiokád a doksi elejére egy felesleges karaktersorozatot, mindig BOM nélküli UTF-8-kódolást használj (ezt Notepad++-ban nagyon jól lehet csekkolni).
Azért majd még egyszer olvasd át, amiket írtam, remélem abból nagyjából vágni fogod, mihez is kéne nyúlni. De kérdezz vissza, ha valami nem egyértelmű. -
Sk8erPeter
nagyúr
válasz
SektorFlop #2379 üzenetére
Ez a kód már csak azért is fájó, mert olyan könnyen támadható az oldalad SQL Injectionnel, mint az állat. Nem ártana escape-elni a felhasználótól érkező tartalmat - soha ne bízz meg abban az adatban, ami a felhasználótól közvetlenül érkezik...
Másrészt ha kódot illesztesz be, akkor jelöld ki a kódodat itt a szövegmezőben, majd kattints a "Programkód" gombra, pont arra való, hogy valami normálisan átlátható formában legyenek a kódok.
Harmadrészt: a mailcsere.php fájlban abszolúte semmi értelme JavaScripttel átirányítani a felhasználót, arra ott a PHP header() függvénye is - felesleges tehát kiíratni bármit is.
Ahogy a példában van:
header('Location: http://www.example.com/');
de ezelőtt ne legyen SEMMILYEN kiíratás.
DE (!!!) ezt NE TEDD BELE!! Egyáltalán ne rakj bele semmilyen átirányítást, mert most AJAX-os kommunikáció zajlik, lásd később a magyarázatot.Aztán menjünk tovább.
Ez van most a kódodban:
/* Send the data using post and put the results in a div */
$.post( 'login/mailcsere.php', { email: term },
function( data ) {
var content = $( data ).find( '#content' );
$( "#result" ).empty().append( content );
}
);Ez most azt csinálja, hogy a login/mailcsere.php fájlnak elküldi a term-ben található adatot, az emailbe objektumba begyűjtve, ez majd PHP-oldalon is megjelenik.
A sikeres (!) adatküldés esetén (pl. létezik a fájl, elérhető, nem dobott vissza hibát, stb.) a content változóba úgy pakolja be az adatot, hogy a visszakapott adatokból kikeresi a "content" id-val rendelkező DOM-elemet (!), aztán a content változó tartalmát bepakolja a "result" id-val rendelkező HTML-elembe.Egyrészt: amit Te visszaadsz a PHP-fájllal, abba nem raksz bele semmi olyat, amiben "content" id-val rendelkező elem van, másrészt egyáltalán nincs "result" id-vel rendelkező elemed az oldalon.
Sőt, a PHP-fájlban csak azt a JavaScriptes visszairányítós részt íratod ki, ami AJAX-os kommunikáció esetén eleve felesleges.Először próbáld csak úgy, hogy kiíratod echo-val, hogy "siker" vagy "hiba", aztán a $.post részt egyelőre (!) így módosítod:
var content = $( data ).find( '#content' );
$( "#result" ).empty().append( content );
HELYETT
var content = $( data );
$( "#result" ).empty().append( content );Ezenkívül még tegyél be a mobil.php fájlba egy ilyet valahova a végére mondjuk:
<div id="result"></div>Ide fogja pakolni az AJAX-kommunikáció eredményét.
-
Sk8erPeter
nagyúr
válasz
BullZeye #2381 üzenetére
Jah, jogos, igazából most nézem csak, hogy benne van a reguláris kifejezéssel való ellenőrzés is.
De akkor is nehezen átlátható így.
Én valahogy így oldanám meg, kipróbáltam, működik (direkt két jól eltérő háttérszínt választottam):
var
torrentElements = document.getElementsByClassName("box_torrent"),
oddRowClassName = "box_nagy",
evenRowClassName = "box_nagy2",
oddRowBackgroundColor = "#3AA03A",
evenRowBackgroundColor = "#FF1111";
for(var i=0; i<torrentElements.length; i++){
var torrentLink = torrentElements[i].getElementsByTagName("a")[1],
isTorrentFamilyGuy = torrentLink.title.match(/family.guy/i),
isTorrent720p = torrentLink.title.match(/720p/i),
isOddRow = (torrentElements[i].getElementsByClassName(oddRowClassName).length > 0);
isEvenRow = (torrentElements[i].getElementsByClassName(evenRowClassName).length > 0);
if(isTorrentFamilyGuy && isTorrent720p){
if(isOddRow){
torrentElements[i].getElementsByClassName(oddRowClassName)[0].style.backgroundColor = oddRowBackgroundColor;
}
else{
torrentElements[i].getElementsByClassName(evenRowClassName)[0].style.backgroundColor = evenRowBackgroundColor;
}
}
}Szerk.: a működését úgy is le tudod ellenőrizni, hogy pl. Chrome-ban nyomsz egy F12-t, a Console fület kiválasztod, és oda egy az egyben bemásolod a kódot, majd nyomsz egy Entert (persze úgy, hogy a megfelelő ncore-oldal meg van nyitva, és rákerestél a Family Guy-találatokra).
-
Sk8erPeter
nagyúr
válasz
BullZeye #2377 üzenetére
Uhh, ezt elég brutálisan túlbonyolítod.
Ha jól értem, az a célod, hogy a páratlan, illetve páros soroknak különböző háttérszíneket adj.Ebben az esetben ennyivel megoldható:
var
// páratlan táblázatsorok
oddElements = document.getElementsByClassName("box_nagy"),
// páros táblázatsorok
evenElements = document.getElementsByClassName("box_nagy2"),
// páratlan táblázatsorok háttérszíne
oddBackgroundColor = "#3AA03A",
// páros táblázatsorok háttérszíne
evenBackgroundColor = "#A31E39"
;
// végigmegyünk a páratlan táblázatsorokon
for(var i = 0; i<oddElements.length; i++){
oddElements[i].style.backgroundColor = oddBackgroundColor;
}
// végigmegyünk a páros táblázatsorokon
for(var i = 0; i<evenElements.length; i++){
evenElements[i].style.backgroundColor = evenBackgroundColor;
}=================
(#2376) wolandino : a puding próbája az evés.
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2372 üzenetére
Igen, jól láttad, jQuery-vel nagyon egyszerű az AJAX-os kommunikáció.
Itt konkrét példát is mutatnak rá: jQuery.post().
Nézd meg alul azt a keresőt, ami bemutatja ennek a működését.A lényeg kiszedve az oldalról, van egy ilyen form:
<form action="/" id="searchForm">
<input type="text" name="s" placeholder="Search..." />
<input type="submit" value="Search" />
</form>
<!-- the result of the search will be rendered inside this div -->
<div id="result"></div>Tehát az "s" name-mel rendelkező input-elem tartalmát szeretnénk elküldeni POST-metódussal. Itt a jQuery-kód:
/* attach a submit handler to the form */
$("#searchForm").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
term = $form.find( 'input[name="s"]' ).val(),
url = $form.attr( 'action' );
/* Send the data using post and put the results in a div */
$.post( url, { s: term },
function( data ) {
var content = $( data ).find( '#content' );
$( "#result" ).empty().append( content );
}
);
});A lényeg ez, ami az elején lévő példakódban van, ez elég jól érthető:
$.post('ajax/test.html', function(data) {
$('.result').html(data);
}); -
Sk8erPeter
nagyúr
válasz
SektorFlop #2369 üzenetére
jQuery segítségével a legegyszerűbb: jQuery.get(), itt is van példa, itt bővebb magyarázat is (ld. 4. pont).
Kérdezz, ha elakadtál.
-
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2362 üzenetére
Szívesen.
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2360 üzenetére
Hali!
Remélem valami ilyesmire gondoltál: [link].Persze gyorsmegoldás, lehetne másképp is, de a célnak megteszi.
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #2358 üzenetére
Ezzel tulajdonképpen mit akartál mondani?
Szerk.: egyébként az ilyen jellegű általánosításoknak sok értelme nincs, azok, akik nem értenek hozzá, kezdők, stb., nyilván mindent mágikus fekete doboznak tekintenek. Attól még nem biztos, hogy ostobák, és az sem biztos, hogy nem akarják később bepótolni a tudáshiányt.
Mellesleg gondolom Te is így vagy valamivel, amiről már sokat hallottál, de érdemben nem volt még időd foglalkozni vele, de majd szeretnél (sajnos ezt az igényességet nem mindenki mondhatja el, közvetlen közelből ismerek olyat, aki szeret úgy összeb@szni mindent a lehető leggyorsabban, anélkül, hogy értené, mit csinál, hogy még pénzt is keres vele) - addig viszont marad egy ismeretlen, egyelőre rejtélyes terület, vagyis egy mágikus fekete doboz. Nemde? -
Sk8erPeter
nagyúr
válasz
Peter Kiss #2355 üzenetére
Nem világos a kissé túlzottan támadó stílusod oka - főleg úgy, hogy nem ajánlottál a kérdezőnek megoldást. Ezt azért ennél kicsit finomabban is lehetett volna közölni.
Gondolom a mondandód egyik lényege az volt, hogy kezdő ne nagyon foglalkozzon jQuery-vel nulla JavaScript-tudással, anélkül, hogy tudná, egyáltalán mit csinál. Ez rendben is van, egyetértek. A gond viszont az, hogy sokan csak egy gyors megoldást szeretnének, anélkül, hogy komolyabban belemennének a JavaScript tanulásába. Igényesebb munkához szerintem is elengedhetetlen, hogy belemenjen a részletekbe, de mondjuk jQuery-vel van mód arra is, hogy különösebb tudás nélkül össze lehessen gányolni valamit.
Tulajdonképpen az a probléma, amire rákérdezett, szintén jQuery-vel oldható meg gyorsan és könnyen, mert fasza kis pluginek vannak rá.
Egy példa, ami nem pontosan felel meg annak, amit kérdezett, de multiselectre például nagyon fasza: [link] (senki nem szeret ugye Ctrl nyomvatartásával többet kijelölni).
Tudom, most kész megoldást én sem javasoltam, csak mutattam egy példát. -
Sk8erPeter
nagyúr
rt06 már előttem leírta, de a jsbin-en konkrét példán is láthatod: jsbin.com, itt bal oldalt szerepel a JS-kód, a "hello" azonosítójú paragrafusra (<p id="hello">Hello World</p>) hivatkozik, és ott megváltoztatja a bekezdés tartalmát:
if (document.getElementById('hello')) {
document.getElementById('hello').innerHTML = 'Hello World - this was inserted using JavaScript';
} -
Sk8erPeter
nagyúr
Nincs mit!
Ja, hát elsőre én is csodálkoztam rajta, én a Drupalból "loptam" az ötletet (itt a drupal.org-on láthatod a gyakorlatban, ha megkukkantod a forráskódját), ott alkalmazzák előszeretettel. Tulajdonképpen ez a dupla komment konkrétan nem tudom, melyik - régi - böngésző(k) miatt szükséges, de valószínű, hogy valami cross-browser hack-elés, ahogy Te is megsejtetted. -
Sk8erPeter
nagyúr
"- par egyeb aprosag, hogy valid legyen a kod (bar nem lett az, mert nem szereti a js-ben sem a & karaktert, de ezen csak az segitene, ha kiemelned kulon file-ba a script-et)"
Nem, van más megoldás is!
Hogy a Te kódod valid legyen, ahhoz csak jelezni kell a parser felé, hogy a JavaScript-kódot tartalmazó sorokat ne próbálja validálni, így:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
<!--//--><![CDATA[//><!--
function sendMail() {
var body = document.form1.s1.value;
body += "%0d%0a";
body += document.form1.s2.value;
body += "%0d%0a";
body += document.form1.s3.value
var link = "mailto:valaki@valami.hu?cc=valaki.mas@valami.mas.hu&subject=targy&body="+body;
window.location.href = link;
}
//--><!]]>
</script>
<title></title>
</head>
<body>
<form name="form1" action="">
<input size="49" name="s1" id="sz1" type="text"/><br/>
<input size="49" name="s2" id="sz2" type="text"/><br/>
<input size="49" name="s3" id="sz3" type="text"/><br/>
<br/>
<button onclick="sendMail(); return false;">Send</button>
</form>
</body>
</html>Egyébként annyit ehhez hozzátennék, hogy az ilyen document.form1 jellegű megoldásokat érdemes kerülni, inkább érdemes id szerint hivatkozni a mezőkre.
Szerk.: persze attól még érdemes a JavaScript-cuccokat is (ahogy a CSS-t is) külön fájlba rakni, hogy a böngésző szépen cache-elhesse az azt tartalmazó fájlt, ráadásul úgy egyébként is könnyebben karbantartható. Meg "szemantikailag" is szebb.
-
Sk8erPeter
nagyúr
Hát én ugyan nem ragaszkodom hozzá, Te kértél segítséget, nem én...
Amúgy nincs name="sendValue" attribútummal rendelkező input-elemed, de ezt már korábban is magyaráztam, úgy látom feleslegesen.
Azért kell, mert ennek az értékét akarod elküldeni AJAX-szal, és erre kötöd a "keyup"-eseményt...
Valami ilyesminek kéne lennie:
<input type="text" size="49" name="sendValue" id="sendValue" />A <script type="text/javascript"> részt tök felesleges PHP-val kiíratnod, mivel az "statikus".
-
Sk8erPeter
nagyúr
Most komolyan azt hiszed, az a hiba, hogy szóközt tettél a $row után és a mysql_fetch array elé?
Ennyi jött át abból, amit írtam??
Elég elkeserítő.
Nem, az kifejezetten NEM hiba...Azért értelmezd is, amiket írnak neked.
Na jó, segítek, mert aztán sose lesz vége: {} - van egy ilyen üres blokkod, ahol nem csinálsz semmit a lekérdezés eredményével, erről beszéltem........
-
Sk8erPeter
nagyúr
Hát már rögtön abban van, hogy felhasználótól érkező megbízhatatlan adatot eleve nem adunk át közvetlenül (mindenféle escape-elés nélkül) SQL query-be.
Meg a mysql_query() és társaihoz hasonló függvények használata manapság már eleve felejtős. (Lásd pl. cucka kolléga korábban belinkelte az erről szóló hivatalos "hírt" is (deprecated lesz).) PDO-t használd, aztán később jöhetnek komolyabb ORM-ek is, ha úgy alakul."ha gyorsan írok az inputba akkor a lekérdezés megáll és kilistáz minden rekordot az mysql tableból."
Ha kilistázott minden rekordot, akkor nem "állt le" a lekérdezés.while($row = mysql_fetch_array($sql)){}
Így fejezed be, de most itt a while-nál tényleg üres blokk van, vagy csak lespóroltad innen a többi bepötyögését?Ha a $_POST["sendValue"] üres, akkor persze, hogy az összeset ki fogja listázni.
Léteznie kell name="sendValue" attribútumokkal rendelkező inputnak, amibe a felhasználó pötyögi az adatokat. -
Sk8erPeter
nagyúr
Mondjuk utánajárás helyett ráklattyolhatnál az előbb küldött linkemre, és nagyjából 10 másodperc eltöltése után értenéd, mire gondoltam.
Az általad belinkeltnél meg szintén nem tudom, mire akartál célozni, látom, és?
Ha meg nem létező id-ra próbálsz hivatkozni, akkor átirányít a friss.html-re. Ez is egy megoldás, vagy az, hogy kiírod, hogy nincs ilyen, és vaze.
Az AJAX-os problémádat meg kód nélkül nem fogjuk tudni megoldani.
-
Sk8erPeter
nagyúr
Ja, értem, OK, jogos a hsz.-áthelyezős téma, kicsit félreértettem.
"aminél az id törölve lett és az error.phphoz irányítót"
hát az elég gáz... röviden: az egy igénytelen fórum, igénytelen programozókkal"de abban egyetértek hogy legyen benne egy hszre link, de a hszhez ugrásban nem 100%an jó"
Mi nem jó?Itt megint nem vágom, mire gondoltál.
"nem értek a jshez, szal nekem ezt nyugodtan mutathatod"
Na de akkor mit szeretnél? Most JavaScriptes megoldás kell, vagy nem?
Az anchorok használatához semmi JavaScript-alapra nincs szükség, szimpla HTML-ben is megoldható az "odaugratás".Csináltam neked példát:
NÉZD MEG EZT!
Kattints az oldalon található linkekre! -
Sk8erPeter
nagyúr
Nem fogsz tudni jobbat az id-nál, lehet, hogy vannak alternatívák, de felesleges szarakodni.
Egyébként tulajdonképpen azért szeretnél ehhez jQuery-t, hogy ne egy gyors ugrás legyen a hsz.-re, hanem animálva legyen az odaugrás, vagy miért?
jQuery-vel is simán le tudod csekkolni, hogy létezik-e adott id-vel rendelkező elem, így nem fog hibát dobni:// ha nem létezik "nemletezoid"-val rendelkező elem, akkor ez hamis
if( $('#nemletezoid').length > 0 ){
// ...
}"például ha törlődik vagy áthelyeződik a hsz akkor errort fog visszadobni,"
1. nem fog errort dobni, ha alkalmazod a fenti kódot
2. de NE ALKALMAZD, hanem inkább kezeld ezt le szerveroldalon, a Te dolgod ellenőrizni, hogy ha az adott id-vel rendelkező hsz. nem létezik, akkor a következő létezőre ugorjon.
3. "áthelyeződni" adott fórumba érkező hsz.-ek elég ritkán szoktak. Itt nem tudom, mire gondolsz. Nem szoktak áthelyezni hsz.-t, inkább létrehoznak a másik fórumban egy új hsz.-t az adott tartalommal, az előzőt meg törlik. -
Sk8erPeter
nagyúr
"Én azt hittem, a JScript Java alapokra hajaz, de ott értéket adni "="-al szokás, nem ":"-al. Én legalábbis még sohasem csináltam másképpen."
Erre válaszul egy elég hiteles forrás:
https://developer.mozilla.org/en/JavaScript/A_re-introduction_to_JavaScript
"It's useful to start with an idea of the language's history. JavaScript was created in 1995 by Brendan Eich, an engineer at Netscape, and first released with Netscape 2 early in 1996. It was originally going to be called LiveScript, but was renamed in an ill-fated marketing decision to try to capitalize on the popularity of Sun Microsystem's Java language — despite the two having very little in common. This has been a source of confusion ever since."A JavaScript és a JScript megint csak nem ugyanaz. Te a JavaScript topicban vagy...
"Microsoft released a mostly-compatible version of the language called JScript with IE 3 several months later."
JScriptről továbbiak itt."Én legalábbis még sohasem csináltam másképpen. A JQuery-t ne keverd ebbe bele, ez JScript alapot érintő kérdés. Az igazi problémámnak nulla köze van konkrét lib szintű kód részletekhez."
1. Nem JScript, hanem JavaScript-alapot érintő kérdés, lásd a korábbiakat.
2. (A "JQuery-t ne keverd ebbe bele" részre reagálvaElőbb nem volt egyértelmű, konkrétan melyik szintaktikával van a problémád...
"Most hogy ezen juszt is elkezdesz rugózni.. irigylem a fene sok fölös energiádat."
Én meg csodálkozom az erősen offenzív és egyben destruktív stílusodon. Idejössz, segítséget kérsz, meg is adjuk neked, több kérdésedre is reagálok, Te meg úgy válaszolsz, mint akinek szidták az anyját. Ha valaki próbál neked segíteni, akkor cserébe lehetőleg ne rugdalózz. Felvilágosításként: a segítségként történő válaszadást meg egy programozási hibára történő figyelemfelhívást nem "rugózásnak" hívnak. Így az embernek egy kicsit elmegy a kedve a további válaszadástól. És most nagyon finoman reagáltam az általad alkalmazott, bicskakinyitó stílusra.Objektumok: [link], [link], plusz amire kérdezel, magára a szintaktikára ez jó referencia:
"An object is an unordered set of name/value pairs. An object begins with { (left brace) and ends with } (right brace). Each name is followed by : (colon) and the name/value pairs are separated by , (comma)."
Másik válasz:var o = {
r: 'some value',
t: 'some other value'
};
is functionally equivalent tovar o = new Object();
o.r = 'some value';
o.t = 'some other value'; -
Sk8erPeter
nagyúr
"szívesebben láttam volna explicite kibontva ezt a (szerintem) mákos tésztát, de a szerzőnek más volt a véleménye."
Hogy kellett volna "explicite kibontani"? Magyarázza el a JavaScript vagy jQuery alapjait?Vagy nem tudom, mire gondolsz.
Egyébként a kóddal nincs baj, ez így elég átlátható.Tulajdonképpen röviden paraméterként átad egy objektumot, amiben az onChange és onSelect eseményekre mutató függvénypointereket tárolja (tehát milyen függvények hívódjanak meg az események bekövetkeztekor), második paraméterként pedig egy anonim függvényt ad át.
Ezt más szintaktikával is meg lehetett volna írni akár, pl. így:
var faszaObjektum = {
onChange: updatePreview,
onSelect: updateCoords,
aspectRatio: 1
};
$('#target').Jcrop(faszaObjektum, function () {
// Use the API to get the real image size
var bounds = this.getBounds();
boundx = bounds[0];
boundy = bounds[1];
// Store the API in the jcrop_api variable
jcrop_api = this;
});De egybevonva látszik, mivel hívod meg a Jcrop-ot az adott DOM-elemre. Ez ízlés kérdése, hogy írod meg.
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #2308 üzenetére
Akkor még jó, hogy egymást oktatgatjuk.
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #2306 üzenetére
Ezt most miért nekem írod?
Tisztában vagyok vele, elég sok OO-kódot írtam már JavaScriptben is, így nem is kértem magyarázatot, hogy az mire való - de az említett példában totálisan értelmetlen (inkább erőltetett) volt a használata.Nem is objektumokat szeretett volna létrehozni, hanem szimpla számösszeszorzást végeztetni egy a és b számmal, és megvizsgálni az eredményt (vagyis a függvény visszatérési értékét).
-
Sk8erPeter
nagyúr
Minek ilyen nyakatekerten megoldani a függvényeket? Nem igazán világos itt az anonim funkció szerepe sem, hogy tulajdonképpen minek - nem sok értelme van.
Átalakítva valami normálisan értelmezhető formára:
function multiply( a, b ){
return a * b;
}
alert( multiply(3, 4) ); // 12Így még lehet is látni, mit akar csinálni a függvényed.
Egyébként ha nagyon ragaszkodsz - az okát nem látom - a saját függvényedhez, akkor az anonim funkciónál sincs sok értelme egyből megadni a bemenő paramétereket.
Példa:var proven = function (a, b) { return a * b; };
alert( proven(3, 4) ); // 12Így pontosan ugyanaz a függvény meghívásának módja.
=====
(#2300) Athlon64+ : sajnos nagyon sok tutorialban a mai napig benne maradt ez a language="JavaScript" baromság. Ez még nagyon régen használatos volt, de már elég régóta kiment a divatból - tehát "deprecated"-nek minősül (pl.). Itt is találtam egy oldalt, ahol arról vakerásznak, miért is kell(ett) ez az attribútum. Sajnos az ilyeneket nem törlik. Volt ilyen, ma már nincs.
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2295 üzenetére
Szívesen!
De, gyorsmegoldással megcsináltam azt is, hozzáadom az "active-menu" osztályt, ami úgy van beállítva CSS-ben, hogy alapból piros a színe: [link].
Amikor másra kattintasz, akkor leveszi az előbbiről ezt az osztályt, és hozzáadja az újabb aktívhoz. -
Sk8erPeter
nagyúr
Igen, jól láttad, szutykokat írtam.
"a flash videók sokkal jobban néznek ki mint egy átlagos videó, és még kisebb a fájl méretük."
Te miről beszélsz?
Mit jelent nálad az "átlagos videó"...?
Ez most nagyjából annyira értelmes kijelentés, mintha mondjuk azt írnám, hogy "az átlagos fotók mérete 1 MB. Ennek sem lenne abszolúte semmi értelme.
Mondjuk szerintem jobb, ha ebbe a témába nem ebben a fórumban megyünk bele, úgy látom, elég hosszú OFF-olás lenne.Egyébként én nem csak a videókról beszéltem, hanem úgy általában a Flash-es weboldalakról is, tisztelet a nagyon ritka kivételnek - bár ami totál Flash-alapú, az számomra jó már nem lehet.
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2287 üzenetére
Megcsináltam, ilyenhez mit szólsz? >>> [link]
Amúgy nagy respekt, hogy felraktad a példakódodat a JS Binre, bárcsak minden kérdező ezt tenné, sokkal gyorsabb így a közös problémamegoldás.
A fentihez szükség van a jQuery UI-ra, és az általam mutatottakhoz hasonló effektek közül itt tudsz még válogatni: [link]
Ha más effektet szeretnél mondjuk az "explode" vagy a "slide" helyett, akkor nyugodtan cseréld le ezek neveit az itt látható nevű effektek kisbetűs változataira. (pl. "blind", "bounce", "clip", "drop", stb.) -
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2280 üzenetére
De anélkül, hogy látnánk a kódodat, nem is igazán tudunk segíteni.
Rakd fel pl. ide: [link] (aztán Save gomb).
VAGY mutass egy akár free oldalt, ahol élesben láthatjuk, mivel próbálkoztál eddig.(#2281) : ez elvileg csak egy warning, nyugodtan figyelmen kívül hagyható. Pl. jPlayer használata esetén is kiírja nálam egy oldalon, de attól még működik.
A többire meg ugyanaz vonatkozik, mint az előbbi kérdésedre: látni kéne valamit a kódból. -
Sk8erPeter
nagyúr
Autocomplete (írd be pl., hogy "java")
-
Sk8erPeter
nagyúr
Most felraktam ide, amit írtál, javítva pár szintaktikai hibát (bár szerintem túl van kissé bonyolítva a JS-kód, meg for ciklusba függvényt rakni nem a legjobb módszer). A problémádat viszont az érdekes megfogalmazás miatt nem értem: "A problémám csak annyi hogy a rejtet menüket "nem csak 2010 évszám van" szeretném pozicionálni a menu div tetejére." Hogy mi?
===
(#2271) Mr. Teddy : láttad azt is, amit én írtam?
Mert arra nem reagáltál.
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2265 üzenetére
Igazából itt nem tudom, mit értesz konkrétan azalatt, hogy úgy jöjjön elő ez a "view more" tartalom. De ilyen kinyitós-becsukósra itt készítettem épp nemrég egy példát: [link]. Itt ha rámész a jsbin-oldalra, kattints a "Real-time preview"-ra, vagy a "Render" gombra, hogy lásd, mit takar.
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2267 üzenetére
Gondolom azért, mert a jQuery UI, és/vagy azonbelül a Draggable nincs betöltve az oldaladon, így "draggable" metódus sincs, ezért kapod a hibaüzenetet. Itt írják is, hogy kell a jQuery UI.
Amúgy jóféle ez a scrollbar plugin, ezt még nem ismertem.
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2260 üzenetére
Hogyan "hoztad be" proxyval?
Mutass kódot plíz!Egyébként milyen címről szeretnél RSS feedet behozni?
-
Sk8erPeter
nagyúr
Mivel próbálkoztál eddig?
"Insert the below script into the <head> section of your page"
Tehát magyarul ezt a részt, ami ez alatt van, be kell másolni a forráskódod <head> részébe.Aztán még ezt is másold az előbbiek alá:
<script type="text/javascript">
var tooltips = [];
tooltips[0]=["red_balloon.gif", "Here is a red balloon<br /> on a white background", {background:"#FFFFFF", color:"black", border:"5px ridge darkblue"}];
tooltips[1]=["duck2.gif", "Here is a duck on a light blue background.", {background:"#DDECFF", width:"200px"}];
tooltips[2]=["dynamicindex14/winter.jpg"];
tooltips[3]=["dynamicindex17/bridge.gif", "Bridge to somewhere.", {background:"white", font:"bold 12px Arial"}];
</script>Komplett példa:
<html>
<head>
<title>próba</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://www.dynamicdrive.com/dynamicindex4/ddimgtooltip.css" />
<script type="text/javascript" src="http://www.dynamicdrive.com/dynamicindex4/ddimgtooltip.js">
/***********************************************
* Image w/ description tooltip v2.0- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
***********************************************/
</script>
<script type="text/javascript">
var tooltips = [];
tooltips[0]=["http://www.dynamicdrive.com/dynamicindex4/red_balloon.gif", "Here is a red balloon<br /> on a white background", {background:"#FFFFFF", color:"black", border:"5px ridge darkblue"}];
tooltips[1]=["http://www.dynamicdrive.com/dynamicindex4/duck2.gif", "Here is a duck on a light blue background.", {background:"#DDECFF", width:"200px"}];
tooltips[2]=["http://www.dynamicdrive.com/dynamicindex4/dynamicindex14/winter.jpg"];
tooltips[3]=["http://www.dynamicdrive.com/dynamicindex4/dynamicindex17/bridge.gif", "Bridge to somewhere.", {background:"white", font:"bold 12px Arial"}];
</script>
</head>
<body>
<p><a href="http://www.dynamicdrive.com" rel="imgtip[0]">Link 1</a></p>
<p><a href="http://javascriptkit.com" rel="imgtip[1]" style="float:right">Link 2</a></p>
<p><a href="http://cssdrive.com" rel="imgtip[2]">Link 3</a></p>
<p><a href="http://codingforums.com" rel="imgtip[3]">Link 4</a></p>
</body>
</html>Ide felraktam a komplett kódot: [link]
A képeket valamiért nem tölti be, most vagy azért, mert a hotlinkelés tiltva van, vagy másért, ezzel nem töltöttem időt, mindenesetre a tooltip megjelenik.= Szerk.: egyébként vannak alternatívák bőven tooltipekre, ide korábban felraktam egy másik példát: [link].
---------------------------------------------------------
(#2245) [pod]Diablo : szívesen! -
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2243 üzenetére
Gyors példa:
<a href="http://google.hu" onclick="this.href='http://prohardver.hu';">Google-link, valójában Prohardverre ugrik, ha JS engedélyezve van.</a>
-
Sk8erPeter
nagyúr
válasz
Istikee007 #2239 üzenetére
Tooltipre itt egy példa: [link].
-
Sk8erPeter
nagyúr
No de pastebin-nek igen nagy hátránya, hogy nincs live preview a kódból HTML-, CSS- és JavaScript-tartalmakra, míg jsbin-en van, és az nagyon hasznos tud lenni.
Meg az is fasza, hogy szintaktika-kiemelés és helyben szerkesztés, majd új változat elmentése, változások csekkolása is támogatott, ezentúl kismillió JS-library include-olása is lehetséges egyből, szóval ilyen témakörben millió érv szól mellette.
Ja, és még egy: http://jsfiddle.net/. Ez is legalább ilyen jó. -
Sk8erPeter
nagyúr
Ja, vágom, és bocsánat, visszavonom, hajnalban nem igazán értem, miért nem ment...
Most kipróbáltam megint, és pörgött a dolog. Kissé furcsa, na mindegy, lehet, hogy már annyira (fél)zombi állapotban voltam, hogy vmit elqrtam.
Szóval sorry, mégis működik.Ja, amúgy ha már beszó'tam, akkor hadd javasoljak is már egyben valamit
Legközelebb az ilyeneket inkább ide pakold fel, ahol meg is marad:
[http://jsbin.com]Utólagos engedelmeddel (remélem nem gáz) inkább felraktam ide az általad mutatott példakódot: http://jsbin.com/unipur/edit#javascript,html,live
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2222 üzenetére
"Eddig okés is, viszont ha leveszem az egeret és átviszem egy másik li részre akkor azt is elkezdi írni."
De abban a szűrőfeltételben, amit írtál ( $('#menu li') ), pont az van benne, hogy a #menu elemen belüli összes li-elem mouseover funkciójára csinálj valamit.
Egyébként mouseover, mouseout helyett egyszerűsíthetnéd hover()rel a dolgot.Egyébként az azutániakat nem igazán értem, hogy mit szeretnél...
Nem világos, miért lenne jó, ha az <a>-ra nem vonatkozna, hogyan is néz ki a dolog, nehéz elképzelni. Nem tudod valahogy szemléltetni - vagy kicsit jobban elmagyarázni?
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2217 üzenetére
Ja, hát tényleg nagyon nem lenne hülyeség. Meg ott a Newhosting, oda meg csak domain kell... Mondjuk ahogy írta, nem tudja magától megírni a scriptet, szóval mint kiderült, feleslegesen témáztunk erről az egészről annyit.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2215 üzenetére
Igen, és gondolom meg is akarja tartani eme jó szokását.
-
Sk8erPeter
nagyúr
válasz
BullZeye #2206 üzenetére
"Szerver oldali fájllal nincs baj, csak nagyon macerás egy adatbázist létrehozatni velük."
Kikkel?Amúgy mi benne az a hatalmas macera? Nem vágom.
Meg lehet csinálni adatbázis nélkül, saját fájlba írással is (XML, JSON, stb.), de röviden és tömören gány megoldás. Túl sok a macera vele, plusz feleslegesen erőforrásigényes egy jóféle adatbázishoz képest.
De ha csak Te használod egyedül, végül is nem történik nagy katasztrófa, ha ezt választod. Több felhasználó esetén már tényleg nagyon nem jó. Mondjuk egyedüli felhasználóként is jobban járnál adatbázissal."Szeretném követni, hogy melyik sorozatból melyik részt láttam, és ez a legegyszerűbb módja, ezért szeretném ezt elérni. Azt hittem erre van már valami egyszerű javascript."
Te magad mondtad, hogy szeretnéd géptől és böngészőtől függetlenül elérni ezeket az adataidat. Akkor meg gondolom ebből világos, hogy a kliensoldali mentés (pl. cookie-ba, stb.) NEM elég.Mindenesetre az már világos, hogy ennek semmi köze nincs a JavaScript topichoz.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2191 üzenetére
Hát inkább arról van szó, hogy azért nem írok ki mindent, mert akikről általában feltételezem, hogy tényleg érdekelheti, azokkal nem csak a virtuális térben találkozom.
Így ők úgyis áptudéjtek. (ugye milyen szép magyar szó?
) Na jóvanmá', ne offoljuk szanaszéjjel a topicot.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2189 üzenetére
Viszonylag "régóta" van a jelenlegi, de nem szoktam mindent a Fácsé-júzerek orrára kötni, sanszos, hogy itt előbb értesülsz dolgokról, mint Fácsén.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2187 üzenetére
Nem muszáj!
Csak lehet, hogy később könnyebben olvasható.
Á nem, cégnek, melóhelyen. jQuery-n keresztül nem olyan bonyolult az AJAX-ozás, sőt, brutálegyszerű.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2185 üzenetére
Azzal semmi, ha megnézed a boolean értékét, de úgy értem, lehetne egy fokkal logikusabban is, úgy, hogy van egy confirmDelete() függvényed, és ha az hamis, akkor visszatérsz.
Nem úgy, hogy először tagadod azt, amit a felhasználó válaszolt ( !torol() ), majd ha a "nemtörlés" igaz, akkor térsz vissza.Szóval érted, na mindegy, így is jó, csak akkor fordítva gondolkodunk.
Mondjuk ez nem baj, de számomra ez olvashatóbb.
Komplex AJAX-os felületet készítek épp.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2183 üzenetére
Ez az if(!torol() == true) olyan, mintha lehajolva, és a lábadat hátulról átkarolva akarnád megvakarni a fejedet
Működik, de azért szopatod magad
Szerk.: most meló közben meghallottam a sörnyitás hangját egy pillanatra, fény az éjszakában
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2181 üzenetére
Hogyhogy mit lehetne?
Hát ellenőrizd!
De még mindig nem másoltad be a kódodat, így nehéz benne kijavítani a hibát.
De akkor mutatok egy példát:
$('#ez_a_torlo_gombod').click( function(){
if( false === confirmDelete() ){ // vagy csak simán if( !confirmDelete() )
return false;
}
// lefutott a megerősítés, annak értéke true volt (egyébként már visszatért volna), itt már tényleg töröl, megy tovább
// ........
}); -
Sk8erPeter
nagyúr
válasz
Speeedfire #2175 üzenetére
Na de azt is mutasd már, hogy a kódod többi részében mi van!
Mert lehet, hogy csak ennyit csinálsz pl. jQuery-vel:$('#ez_a_torlo_gombod').click( function(){
torol();
// itt már tényleg töröl, de a a torol() visszatérési értékét nem ellenőrizted, megy tovább
// ........
});Ez így meg nem jó, ellenőrizni kell a visszatérési értéket.
Egyébként úgy működik a függvényed, ahogy kell.
De HASZNÁLJ PONTOSVESSZŐKET az utasításaid végén.function torol() {
var answer = confirm("Biztosan törlöd?");
if (answer){
return true;
}
else{
return false;
}
}Ahogy PHP-ben is tennéd mondjuk...
Különben ocsmány.De hadd jegyezzem meg, hogy ezt a függvényt egy kissé le tudod rövidíteni, pl. így:
function confirmDelete() {
return confirm("Biztosan törlöd?");
}(#2177) :
"Hogy lehet ezt kipróbálni consolban? Vagy honnan tudom, hogy mi a visszatérési értéke?"
Pl. Chrome-ban (vagy Firebug, vagy Opera Dragonfly, utóbbira F12 asszem nem érvényes, csak Ctrl+Shift+I):
nyomj F12-t
a konzolodba másold be a függvényedet, majd Enter
aztán simán hívd meg a függvényt így:
torol()
ki fogja írni a visszatérési értékét!Egyébként manapság a klasszikus confirm() ablak helyett illik használni pl. jQuery UI Dialogot: [link].
De előbb bírd működésre a korábbit... -
Sk8erPeter
nagyúr
válasz
Siriusb #2106 üzenetére
Hali!
Bocs, csak gyorsan tudok válaszolni, a többire érdemben csak holnap fogok tudni, de a lényeg, hogy a window.location egy objektum, így annak legfeljebb a tulajdonságait tudod vizsgálgatni, hogy létezik-e.
Példa:
window.location.hasOwnProperty('blabla');
false-szal tér vissza, mert nincs "blabla" nevű property-jewindow.location.hasOwnProperty('href');
true-val tér vissza, mert létezik a "href" property, ami a window.location.href-fel érhető el.Érdemes inkább ilyen vizsgálgatásokat végezni, ha viszont arra vagy kíváncsi, hogy mondjuk az adott cím tartalmaz-e valamilyen karaktersorozatot, akkor meg a megfelelő tulajdonságot kell felhasználnod, példa:
window.location.href.indexOf('eztkeresedateljescimben');
Ha csak a hostname-ben szeretnél keresni (pl. www.google.hu), akkor a hostname tulajdonságot kell felhasználnod:
window.location.hostname.indexOf('google');Ha mégis ragaszkodnál ahhoz, hogy a window.location-ön végezz indexOf-ot, akkor ez működik:
window.location.toString().indexOf('eztkeresedateljescimben');Ja, és persze mindegyiknél úgy kell vizsgálódnod, ha csak az érdekel, hogy benne van-e a keresettt string, hogy az indexOf nagyobb értéket ad-e vissza, mint -1, mert ha igen, akkor megtaláltad, ha nem, akkor nincs meg a keresett string.
-
Sk8erPeter
nagyúr
"IE alá fejlesztek"
És?IE alatt is a getElementById való arra, hogy adott id-vel rendelkező elemet lekérjünk.
Ha a Google-ös találatokat bizonyítéknak szántad, az nem jött be, mivel ahogy te kerested, idézőjelek nélkül, az minden lószart megtalál, azt is, ha egymás után szerepel szóközzel így: "document all", "document's all", stb.
Így a jó az összevetés, ha már homár:
"document.getElementById" - "Nagyjából 31 000 000 találat"
"document.all" - Nagyjából 7 940 000 találatCsupán 23 millió körüli előny a "document.getElementById" javára.
Ha már ezzel akarunk bizonyítani... bár nem mintha ez érv lenne, sőt...Nem mindig az a segítség, ha egy az egyben leírunk valakinek kódokat, főleg, ha fogalma sincs, miről van szó. Ettől függetlenül ha visszakeresel a topicban, elég sok konkrét kódot írtam már le emberkéknek segítségből, olyanoknak, akiknek érdemes, mert látszik, hogy valóban foglalkoztatja őket az adott probléma, és nem csak azt várják, hogy az ő beböffentésére mindenki ugráljon.
"lesz*rom?"
Akkor meg miért sértődsz meg egy kritikán?"nem, mást meg nem irritálok lényegtelen bejegyzéssel"
Ha az én hozzászólásomra céloztál így nem túl egyenes módon: szerintem nem lényegtelen hozzászólás az, ami hibás szakmai írást kritizál vagy korrigál érdemben.
De persze van, aki nem bírja a kritikát, még akkor sem, ha hibázik. Az ember nem tudhat mindig mindent helyesen, és nem gyengeség beismerni, ha valamit esetleg más jobban tud. Ezt a tanácsot én is megfogadom, ha írok valami topicba, és korrigálják az esetleges hibáimat a hsz.-emben, nem sértődöm meg rajta.
Nem kell mindent egyből támadásnak venni.Ja, és a legfontosabb: igen rövid és tömör választ kaphatsz itt arra, hogy miért is NE használd a document.all-t: [link]
"document.all is a proprietary Microsoft extension to the W3C-standard. (B)getElementById (/B)is standard - use that.""document.all() is a non-standard way of accessing DOM elements. It's been deprecated from a few browsers. It gives you access to all sub elements on your document.
document.getElementById() is a standard and fully supported. Each element have a unique id on the document."
Magyarul a document.all NEM szabványos, elavult, helytelen a használata.
A document.getElementById szabványos és teljes körűen támogatott a normális böngészők által.Tanulság:
senki ne használja a document.all-t.
Teljesen mindegy, hogy IE-re vagy más böngészőre fejleszt. -
Sk8erPeter
nagyúr
válasz
Brown ügynök #2092 üzenetére
Jaja, a hsz. elküldése után már biztos voltam benne, hogy az lesz az.
Más scope-ban van így, most már elérhető a függvény.Nincs mit.
-
Sk8erPeter
nagyúr
válasz
Brown ügynök #2090 üzenetére
"Mivel a suggestion.js fájl egy másik fv-e lefut ezért ez nem játszik."
Akkor az előbb nem értem, mire mondtad, hogy nem fut le.
ezt írtad: "ha viszont hivatkozok a fv-re onclick="egyfv();" akkor nem látja, is ua. a hibát dobja.""a következő kódrészlet fogja közre a fv-ket.
$(document).ready(function() {
...
)};"
Ha magáról a függvény definíciójáról beszélsz, akkor tök felesleges.
Akár még ez is lehet probléma.
Szedd ki a ready állapothoz kötésből a függvényt, az csak a definíciója a függvénynek, nem a meghívása.
Ha a li onclick eseményére kötöd, akkor már az az elem úgyis készen van. Nagy valószínűséggel a klikkelés idejére amúgy is kész a DOM.
Tehát így legyen:function fill( yourValue ) {
// függvénydefiníció
// .......
}
$(document).ready(function() {
// ...
)};Azt sem írtad, hova pakoltad egyáltalán a suggestion.js-t. Pl. az elem utánra raktad be a script taget, azelőttre, vagy hogyan...
Pontos leírás kéne, meg az, hogy kicsit légy nyitottabb, és csekkold le a HTML-kódodat validatorral, a JS-kódodat meg a JSLinttel.
Lehet, hogy olyan jellegű hibák is kiderülnek belőle, amikre nem gondoltál.Most így kód nélkül tényleg csak sötétben tapogatózás az egész....
-
Sk8erPeter
nagyúr
válasz
Brown ügynök #2088 üzenetére
Akkor magyarul pont az nem működik, amit először mutattam neked, tehát az ezelőtti hsz.-ednél pont nem azt próbáltad ki, amit mondtam.
Na ez a baj az ilyen gyorsan odavetett válaszokkal, amikor Te kérsz segítséget.
Hát akkor vagy az elérési út nem jó, vagy rossz helyen szerepel a <script> taged, vagy valami szintaktikai hiba van a suggestion.js-ben, ezt most így nem tudom megmondani, mivel egyáltalán nem látom a kódodat. Ha felpakolnád valahova, könnyebb lenne.
A kódod esetleges hibáit meg ellenőrizd a JSLint-tel, nagyon sok hibát észrevesz, amit a fejlesztő nem. -
Sk8erPeter
nagyúr
válasz
Brown ügynök #2086 üzenetére
Nem arról beszéltem, hogy simán az alert()-et rakd bele az onclick-be, hanem a FÜGGVÉNYT hívd meg ott, amit a suggestion.js-be pakoltál korábban, direkt ezért mutattam meg a tesztfüggvényt (testalert()), hogy hogy is gondolom. Legalább így tesztelni tudnád, hogy egyáltalán az ottani függvények meghívódnak-e.
De lehet, hogy azt csináltad, ezt sem írtad egyértelműen... eljátszhatjuk még ezt egy párszor, hogy én írok egy jó hosszú hsz.-t, te meg egyetlen tőmondatban válaszolsz, de valószínűleg elég sokára fogunk előrébb jutni... -
Sk8erPeter
nagyúr
válasz
Brown ügynök #2084 üzenetére
Azt még mindig nem írtad meg, más JS-kód működik-e...
Akkor legalább a suggestion.js-be tegyél bele egy tesztfüggvényt, hogy csekkold, megy-e egyáltalán bármi is, és átmenetileg próba erejéig cseréld le az onclick eseményt.
function testalert(){
alert('ok, ez műxik');
}...
$response .= '<li onclick="testalert();">'.$data->getData().'</li>';
Szintaktikai ill. egyéb hiba valahol a kódban?
Néha érdemes leellenőriztetni W3C validatorral az oldal kódját, nincsenek-e benne ordító hibák (egyes elemek felcserélése, stb.), elég durván meg tudják zavarni a JS-kódokat is, sokszor emiatt nem működik (persze csak egy lehetséges ok a sok közül), tapasztalat. -
Sk8erPeter
nagyúr
válasz
Brown ügynök #2082 üzenetére
Olyan nagyon nem tanulmányoztam a kódodat, de ez egyből feltűnt:
src="'js/jquery-1.6.1.min.js"
Nem tudom, látszik-e, azt akartam kiemelni, hogy a js könyvtár előtt az src attribútumban véletlenül ott maradt egy aposztróf ( ' ). Ez hibás működéshez vezethet, olykor kiszámíthatatlanokhoz, franc tudja, hátha ez, ha nem, írd meg, és akkor elgondolkodunk.Szerk.: vagy csak rosszul másoltad be, az eredeti kódban nem ez van?
Van egyáltalán olyan függvény, ami lefut a suggestion.js-ből? Gondolom elérési út jó, stb... azt nem írtad, más JavaScript-kód fut-e rendesen, és csak ez-e a hibás. -
Sk8erPeter
nagyúr
Miért ragaszkodsz ehhez a document.all-hoz (másik topicban is ezt használtad)?
document.all.xyz
HELYETT
document.getElementById('xyz')
utóbbi a helyes.var tarolo=document.all.a1.value;
eleve már megint ez a document.all, de mindegy, most ezt tegyük félre, de ezután ezt írod nem sokkal:
document.all.x.value=oldal[tarolo-1];Ennek konkrétan semmi értelme, hogy a hidden input mezőbe elhelyezett értékkel indexeled a tömböt... akkor már legyen JavaScript-változóban tárolva, ha már ezt választod...
DE ha már említetted a length property-t, akkor már miért nem használod?
Pl. oldal.length"tömb hossz a nullával is számol"
NEM, nem a nullával is számol, hanem a nulladik tömbindexen szereplő értéket is beleszámolja. Nyilván, mivel az is a tömb egyik eleme.
Az indexelés pedig 0-tól kezdődik, tehát a 0. indexen szereplő érték a tömb első eleme.Látom épp tanulod a JavaScriptet...
-
Sk8erPeter
nagyúr
Kipróbáltam Firefox 3.6 Portable-lel, és teljesen jól működik.
Addig nem fogunk tudni neked segíteni, amíg a teljes kódodat nem látjuk, hogy mit rontasz el, ezért igazán felrakhatnád egy ingyenes tárhelyre (ajánlom pl. a Freewebet), az egész regisztrációval együtt kb. 10-15 percet venne igénybe, új júzerként is. -
Sk8erPeter
nagyúr
Az kemény.
<id="1" style="font-size:50px;">
Ez szerinted mégis milyen HTML-elem?Miután ezt a kérdést megválaszoltad, arra adj választ, hogy sikerült ilyen fantáziadús azonosítónevet választani, mint az "1"?
Ezenfelül mégis a modosit() függvényed minek hatására kéne, hogy meghívódjon?
Hol van a gomb, amivel szeretnéd a módosításokat elvégeztetni? (pl. <button> elem HTML-ben, vagy <input> elem is lehet)
Hol csökkented az x változó értékét? (Válasz: sehol.)Ha ezekre a kérdésekre minden választ megadnánk, és egy az egyben odaraknánk eléd egy megoldást, akkor abból semmit nem tanulnál.
Ahogy elnézem, még van mit, HTML-ből és JavaScriptből egyaránt.Csak úgy tudsz bezárni JavaScriptből ablakot, hogy scripttel is nyitottad meg.
Új URL betöltését pedig a window.location-nel kezdeményezheted. -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #2061 üzenetére
-
Sk8erPeter
nagyúr
válasz
Siriusb #2060 üzenetére
"Mivel a css-ben is medium-ra van állítva."
Erről beszélek, hogy ezt változtasd meg...Vannak előre megírt jQuery-pluginek ilyen célra: [link]
Ki lehet próbálgatni őket (Try out a demonstration).==========
(#2059) jeges: ennek mi köze az egész konkrét betűméret-állításhoz?
Ez csak általános stílusbeállítgatás és -eltávolítás.
Ráadásul konkrét használati példát sem adtál rá, hogy jelen esetben hogyan lehetne hasznát venni. (Nyilván én tudom, de nem értem, miért is lenne az jobb, mint amit Siriusb eddig összehozott... Ennek a pontos feladathoz nem sok köze van.) -
Sk8erPeter
nagyúr
válasz
Siriusb #2057 üzenetére
És ha a CSS-fájlodban explicite megadod, hogy a #tartalomnál mekkora legyen a betűméret px-ben, akkor is medium-ot ad vissza?
Csak nem már.
Amúgy ennél a résznél:
default:
$("#tartalom").css("font-size","medium");
break;nem is értem, minek "medium"-ot adsz meg, így nehéz ebből int értéket kiszámolni.
Ezt is változtasd meg az általad közepesnek tekintett betűméretre. Gondolom ez nagyjából a 17px-es érték lehet nálad, ha a 24 a max, 10 a min, nem?
Bár lehet, hogy ez nagy lesz alapból kicsit. -
Sk8erPeter
nagyúr
válasz
Siriusb #2054 üzenetére
Úgy is próbáltad, hogy az e.preventDefault();-ot a fontSize() függvényhívás utánra teszed? Mellesleg ha sima <li> listaelemekbe pakoltad be, akkor mi szükség van a preventDefault()-ra?
Vagy <a> tagekbe raktad? Ha utóbbi, akkor miért nem az a-ra (és miért a li-re) vonatkoztatva kezeled a click eseményt?
A hozzá tartozó HTML-kódot sem ártana látni.
Esetleg fel tudod rakni egy ingyenes tárhelyre a lényeget? Úgy könnyebb lenne kipróbálni és debuggolni.
Egyébként simán lehet, hogy az each-re nincs is szükség. -
Sk8erPeter
nagyúr
válasz
Pho3bus #2042 üzenetére
Mivel a bejelentkeztetésnek és annak ellenőrzésének köze nincs a kliensoldali JavaScripthez, ezért nyilván szerveroldali nyelvvel kellene legenerálnod a bejelentkezés ellenőrzése alapján a scriptet.
Tehát ha be van jelentkezve az illető, akkor pl. echo-zod (ha pl. PHP) a script kódját, és kész.
Azt viszont mi így nem tudhatjuk, hogy milyen szerveroldali nyelvet használsz a bejelentkezés ellenőrzéséhez. -
Sk8erPeter
nagyúr
Ha a linkre rámész, kiderül...
Egyébként szintaktika-kiemelős kódmegosztó portál.
A "Syntax Highlighting" résznél kiválasztod a programnyelvet, a nagy szövegmezőbe bemásolod a kódodat, és a Submit gomb megnyomása után az adott programnyelv szintaktikája szerint fogja kiemelni a szöveget.
Nagyon hasznos, próbáld ki.
Csak egy rövid példa a Te korábbi kódoddal: [link]. -
Sk8erPeter
nagyúr
válasz
Inv1sus #1994 üzenetére
<script type="text/javascript">
<!--
function checkForm() {
var insp_image_val = document.getElementById('inspiraciokep').value.toLowerCase();
if (insp_image_val.length == 0){
alert('Nincs kép kiválasztva!');
return false;
}
var ext = insp_image_val.substr(insp_image_val.lastIndexOf('.'));
if ((ext != ".jpg")&&(ext != ".jpeg")) {
alert('A feltöltött kép csak jpg vagy jpeg kiterjesztésű lehet!');
return false;
}
return true;
}
// -->
</script>----------
"Megoldottam php-val inkább."
Itt a fenti.
Ezenkívül ez nem egészen így működik, hogy melyikkel "inkább", ez a két nyelv jelen esetben nem alternatívája egymásnak, inkább kiegészítik egymást.
A JavaScriptes ellenőrzésssel jóval gyorsabban tudjuk kliensoldalon csekkolni a beírt adatokat, amiket szerveroldalon is ellenőriznünk kell.
Ha melósnak találod a JavaScript-szintaktikát, javaslom a jQuery-t, könnyen elsajátítható, tanulható, és jóval rövidebb kódot eredményez. -
Sk8erPeter
nagyúr
válasz
Inv1sus #1983 üzenetére
Ha arra gondolsz, hogy pl. egy linkelt JavaScript-fájlt újratöltsön, akkor a korábban linkelt oldalon kínálnak egy lehetséges megoldást:
"Try changing the JavaScript file's src? From this:<script language="JavaScript" src="js/myscript.js"></script>
To this:<script language="JavaScript" src="js/myscript.js?n=1"></script>
This method should force your browser to load a new copy of the JS file."Egyébként a Ctrl+F5-ös frissítés jelen esetben miért nem jó FF-nál?
-
Sk8erPeter
nagyúr
válasz
Inv1sus #1981 üzenetére
"nem Toogle hanem toggle."
Akkor már legyünk pontosak, nem Toogle, hanem Toggle.még pontosabban slideToggle().
Ne gyűlöld a programozást, mert akkor ő is gyűlölni fog téged.
-
Sk8erPeter
nagyúr
válasz
Inv1sus #1978 üzenetére
Itt találsz erre jó példát: [replace - Specifying a function as a parameter (MDC Doc Center)]
Ha függvényt adsz meg második paraméternek, akkor az automatikusan meghívódik a replace első paraméterében meghatározott keresőkritériumoknak megfelelő karaktersorozatok megtalálása után.
A paraméterként meghatározott függvény paramétere pedig a találat lesz.Mellesleg a php.js oldalát tanulmányoztad?
Itt PHP-s függvényeket írnak át a JavaScriptes megfelelőikre.
Pl. urlencode().--
Szerk.: amúgy csak érdeklődésképp, mi volt az eredeti célod?
"azt nem tudom, hogy a Get-es változómat, hogy érjem el."
Ezt a részt meg nem értettem, ha még a form elküldése előtt szeretnéd JavaScripttel változtatni a formban található elemeket, akkor a szokásos JS-módszerekkel megteheted, és megváltoztathatod elküldés előtt. -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #1966 üzenetére
Bocs a sok postért, csak még egy, hogy egyértelmű legyen a dolog: ez az itt említett módszer csak FRISSÍTI az oldalt olyan módon, ahogy korábban leírtam. Tehát ez frissítésre kényszeríti a böngészőt JavaScript-oldalról, így első oldalbetöltéskor történő adat-újratöltésre való kényszerítésre NEM alkalmas. Ha pl. valamilyen gombhoz kötöd az eseményt, hogy töltsön újra, akkor rendben van, egyébként viszont ha azt szeretnéd, hogy egyáltalán ne cache-eljen a böngésző, akkor ezt pl. meta-tagekkel vagy szerveroldali nyelvvel lehet elintézni.
-
Sk8erPeter
nagyúr
válasz
Siriusb #1962 üzenetére
Továbbra is áll, amit írtam korábban, tehát nem törölhető JS-ből a cache, de mégis találtam módszert arra, hogy figyelmen kívül hagyja a korábban cache-elt elemeket, és új példányokat szedjen le a szerverről, itt: [link]
"You can call window.location.reload(true) to reload the current page. It will ignore any cached items and retrieve new copies of the page, css, images, JavaScript, etc from the server. This doesn't clear the whole cache, but has the affect of clearing the cache for the page you are on."Tehát:
window.location.reload(true);
Ezek szerint a true boolean azt adja meg, hogy újratöltse a szerverről az oldalt, és NE a böngésző cache-éből szedje le az adatokat, és ez szerintem már részben válasz is a kérdésre.DE ha tényleg azt szeretnéd, hogy sose cache-eljen a böngésző, ha az adott oldalra navigál a felhasználó, akkor azt már nem JavaScriptből kell elintézni!
Majd írd le, konkrétan mi a célod, és akkor tovább gondolkodunk a megoldáson!
-
Sk8erPeter
nagyúr
válasz
Speeedfire #1963 üzenetére
Szerintem elegánsabb megoldás j0k3r! kódja.
Ott konkrétan arra az objektumra vonatkozó tulajdonságot módosítod. Ez így olyan...fura.
De végül is persze működhet.
Konkrétabban: ez a document.images az egész HTML-doksi "gyűjteménye" az oldalon szereplő képekről, így ezt szerintem ilyen módon babrálni olyan nagyon nem szerencsés, épp ezért kellene inkább az adott objektumra vonatkozó tulajdonságot módosítani.
Szerintem. -
Sk8erPeter
nagyúr
válasz
Siriusb #1962 üzenetére
Hát az elég érdekes lenne biztonsági szempontból, ha JavaScripttel törölni lehetne a cache-t.
Szóval ilyenre nincs mód JavaScriptből.
Legfeljebb arra van, hogy megoldd, hogy pl. a JS-fájlokat frissítésnél újból betöltse, illetve arra, hogy egyáltalán ne cache-elje az oldaladat a böngésző, de ez sem olyan nagyon szerencsés, pont azért cache-el a böngésző, hogy első oldalbetöltés után lehetőleg gyorsabb legyen a böngészés. -
Sk8erPeter
nagyúr
válasz
burgatshow #1949 üzenetére
Esetleg át lehetne alakítani táblázatos formára, és utána a tablesorter jQuery pluginnel elintézni a rangsorolást, ha az úgy megfelel (lásd demo).
Elég korrekt ez a plugin.
Új hozzászólás Aktív témák
Hirdetés
- AZONNALI SZÁLLÍTÁS Eredeti Microsoft Office 2019 Professional Plus
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- AKCIÓ! nVidia Quadro P4000 8GB GDDR5 videokártya garanciával hibátlan működéssel
- AKCIÓ! Dell Alienware M17 R3 Gamer notebook - i7 10750H 16GB DDR4 1TB SSD RTX 2070 8GB WIN10
- Csere-Beszámítás! AMD Ryzen 7 7800X3D Processzor!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest