-
PROHARDVER!
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
-
Arki
tag
válasz
Siriusb #2096 üzenetére
JS pl?
<link rel="stylesheet" href="html.css" type="text/css">
<link rel="stylesheet" href="html2.css" type="text/css" DISABLED>
<link rel="stylesheet" href="html3.css" type="text/css" DISABLED>
<script language="JavaScript" type="text/JavaScript">
/* váltás HTML stílusok között */
function stilus(ez)
{
csslink=document.getElementsByTagName("link");
csslink[ez].disabled=false;
if (ez==0)
{
csslink[1].disabled=true;
csslink[2].disabled=true;
}
else if (ez==1)
{
csslink[0].disabled=true;
csslink[2].disabled=true;
}
else if(ez==2)
{
csslink[0].disabled=true;
csslink[1].disabled=true;
}
}
</script>
...
Body-ban:Válasszon egy designt:
<select id="htmlstiluslink" onChange="stilus(form.htmlstiluslink.options[form.htmlstiluslink.selectedIndex].value);" title="Válasszon ki egy design stílust a HTML felületéhez.">
<option value="0">Kék (alap)</option>
<option value="1">Piros</option>
<option value="2">Zöld</option>
</select>
Az első, nem tiltott fáj,l kék színeket tartalmaz. Oldalon belül oldottam meg így a váltást, remélem ez is segít. -
Siriusb
veterán
válasz
Sk8erPeter #2097 üzenetére
Kösz, jó ötlet, szerintem menni fog.
-
Siriusb
veterán
jQuery-ben szeretném megoldani, hogy az aktuális oldalt nyissa meg egy új fülben úgy, hogy közben egy új css is hozzá van adva. A
window.open(window.location.pathname); paranccsal az első rész megoldható, de az oldal manipulálásának mikéntjére nem tudok rájönni, mármint arra, milyen módon érhetem el, ne az eredeti ablakban lévő head-hez adjam hozzá a fájlt, hanem az új ablakéhoz. Kösz. -
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. -
Arki
tag
válasz
Sk8erPeter #2081 üzenetére
Válaszok:
- IE alá fejlesztek (használom getElementById-t is, de ezt minden kezdő egyszerűbben megérti és több helyen tud utána nézni is /document.all vs. getElementById/);
- működik és nem volt világos, hogy mit szeretne, van lehetősége babrálni rajta.. (te írtál neki példát?);
- lesz*rom? A te magyarázatod vesésebb, nyilván felfogja... de nulladik elemmel, igen, ez korrektebb megfogalmazás.
- igen, kell még tanulnom; nem, mást meg nem irritálok lényegtelen bejegyzéssel, ha nem elvárható. -
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.
-
Brown ügynök
senior tag
válasz
Sk8erPeter #2091 üzenetére
A függvény definícióját $(document).ready(function() {-on kívülre helyeztem ez megoldotta a problémát. Kösz
-
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....
-
Brown ügynök
senior tag
válasz
Sk8erPeter #2089 üzenetére
Eléréis útvonal: Mivel a suggestion.js fájl egy másik fv-e lefut ezért ez nem játszik.
Szintaktikai hiba: Valószínűleg akkor valamilyen syntax error üzenettel térne vissza és a kód többi része sem működne. Itt bizony más lesz a probléma.A suggestion.js-ről még annyit érdemes tudni, hogy a következő kódrészlet fogja közre a fv-ket.
$(document).ready(function() {
...
)}; -
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. -
Brown ügynök
senior tag
válasz
Brown ügynök #2086 üzenetére
Pontosítok. Ha így adom meg a kódot onclick="alert();", akkor működik, ha viszont hivatkozok a fv-re onclick="egyfv();" akkor nem látja, is ua. a hibát dobja.
-
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... -
Brown ügynök
senior tag
válasz
Sk8erPeter #2085 üzenetére
Az alert(); működik, a fill() fv.-nél van valami bibi.
-
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. -
Brown ügynök
senior tag
válasz
Sk8erPeter #2083 üzenetére
Az benne maradt, nem az a baja.
-
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. -
Brown ügynök
senior tag
Igazából a probléma összetett, de talán ide illik a legjobban. A fószer elkezd gépelni a keresőmezőbe, majd a 3. karakternél (és minden további billentyű leütésnél) lefut az AJAX kérés. A visszakapott adatokat kilistázza, majd ha erre rákattint berakja az <input>-ba. Illetve berakná de hibát ad vissza. Tehát az adatokkal visszatér, de már nem rakja be kattintásra az inputba.
<script type="text/javascript" src="'js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="js/suggestion.js"></script>Ami a suggestion.js-ben van:
function fill(thisValue) {
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}Amivel az ajax válaszol:
$response .= '<li onclick="fill(\''.$data->getData().'\');">'.$data->getData().'</li>';
És amit webdebug visszadob amikor rákattintunk az egyik listaelemre:
Uncaught ReferenceError: fill is not defined
(anonymous function)
onclickÖtlet?
-
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...
-
Arki
tag
Pl.:
<html>
<head>
<title>01</title>
<script type="text/javascript">
function modosit()
{
var oldal=new Array();
oldal[0]="a";
oldal[1]="b";
oldal[2]="c";
oldal[3]="d";
oldal[4]="e";
oldal[5]="f";
oldal[6]="g";
oldal[7]="h";
/* oldal.length, tömb hossz a nullával is számol, ezért kivonsz egyet */
var tarolo=document.all.a1.value;
if (tarolo!=0)
{
document.all.x.value=oldal[tarolo-1];
/*
ha itt valami objektum szövegkódját/tartalmát és/vagy kívánod módosítani,
akkor pl.:
*/
document.all.xyz.innerHTML=oldal[tarolo-1];
/* ha nem kell, akkot töröld ki ezt a fenti sort meg alul az xyz-s inputot*/
document.all.a1.value=tarolo-1;
}
else
{
document.location.href='valami.html';
}
}
</script>
<body>
<!--// Ezzel növelgetsz //-->
<input type=button style="font-size:50px;" value="katt" onclick="modosit()";>
<!--// Ez a tömbök száma //-->
<input type=hidden id=a1 value="8">
<!--// Ebben jelenik meg az érték //-->
<input type=button id=x style="font-size:50px;" value="8">
<!--// tartalom módosításhoz //-->
<div id=xyz style="font-size:50px;">Kezdő szöveg....</div>
</body>
</html>? -
ubid
senior tag
A hibát megtaláltam. igazából annyi volt a hiba, hogy túl soknak találta a html kommenteket a fájlban, és ezért valahogy összeakadt , vagy nem tudom, a lényeg hogy kiszedtem a kommenteket és működik is.
köszönöm a segítséget!
-
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. -
ubid
senior tag
igen teljesen ezt és csak a szövegen változtattam. de máshol fut rendesen :S
ie. mozzila 4 ... chrome... -
ubid
senior tag
sajnos igen
:
-
ubid
senior tag
egy az egybe leszedtem mindent róla cska a belső szöeget írtam át... dehát az lényegtelen. viszont mégse fut .S
3.6 ban -
ubid
senior tag
a script ezen az oldalon található.
http://www.jquery-plugins.hu/plugin/36-lof-jslidernews.html
ez pedig a deklaárciója.
<script type="text/javascript">
$(document).ready(function(){
$('#scrollbar1').tinyscrollbar();
$('#example2').lofJSidernews({
interval: 4000,
easing: 'easeInOutQuad',
duration: 1200,
auto: true
});
});Köszi a segítséget
-
ubid
senior tag
Helló!
Egy kis segítséget kérnék!Van egy oldal , amin van egy hírdoboz javascripttel készítve.
minden böngészőbe fut, egyedül firefox 3.6 -ban nem tölt be. prögeti a preloader, de csak pörög és nem tölti be végleges állapotba.
hogy lehetne ezt lekezelni ?esetleg ha kódot kell mutatnom beírom, nem hosszú.
valakinek valami ötlet.
-
jeges
senior tag
valóban sok a javítanivaló a kódon, ami elsőre is feltűnő, hogy a head tag nincs bezárva, a body pedig nincs megnyitva.
html elemeket csak a body tagba tegyél, a js kódot pedig célszerű a head-be.
az "elem", amit beírtál a js elé valóban nem értelmezhető, hiszen nincs megadva, milyen elem. ha pl gombot szeretnél, akkor input (azaz 'input type="button"'), de a megadott adatok bizony kevéske a megfelelő értelmezéshez.
ezen felül a fejből (ill. előle) egy sor értelmező deklaráció hiányzik.
szerintem próbálj ki egy olyan szerkesztőt, ami automata módon tud létrehozni sablonokat, elemeket, abból sokat lehet tanulni. -
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. -
MoW
csendes tag
Sziasztok!
Egy gomb lenyomasara kene csokkentenem az x valtozo erteket egyel!
<html>
<head>
<title>01</title>
<id="1" style="font-size:50px;">_
<script type="text/javascript">
function modosit(){
document.getElementById("1").innerHTML="k";
}
x=8;
document.getElementById("1").innerHTML="_";</script>
</body>
</html>Egy gombot szeretnek beilleszteni ami az x valtozo erteket egyel csokkenti, majd kiirja az erteket. Ha a valtozo elerte a 0-t akkor pedig a program bezar es megnyit egy masik html oldalt.
Kossz elore is! -
Siriusb
veterán
Kösz a linket.
Részemről úgy döntöttem már egy ideje, hogy IE6-ot nem támogatom. Aki még mindig azt akarja használni - az én statisztikáim alapján ez az IE használók kb. 10%-a, illetve mostanában már az alá csökkent -, az így járt. Különben is, használjanak Enterprise-t, vagy Commodore 64-et, ha a régi cuccok jönnek be nekik. -
jeges
senior tag
válasz
Siriusb #2063 üzenetére
kulcsszavak vs px:
annyaira azér' nem egyszerű a kérdés... ie-ben nincs computedStyle, ami "átváltaná" a szavakat (small, large, stb) pixel értékekre. jquery bicskája is ugyanebbe törik bele, mivel a kulcsszavak függnek az aktuális felbontástól, plusz ie-ben (elsősorban régi ie-kben) vannak beállítások, amiktől nem lehet belőlük számolni. sajna ha css-ben adsz fix értéket, akkor meg bizonyos körülmények között nem lehet módosítani rajta ie6-ban, így marad a "szokásos" osztály-módosítós játék (ha elegendő 3-4 nagyság), vagy inline cssText (ez utóbbira mutattam én példát fentebb), vagy em, ill %.
pl itt lehet róla olvasni, ha mélyebben érdekel -
Siriusb
veterán
válasz
Sk8erPeter #2061 üzenetére
Megváltoztattam.
Csak a body-ban volt/van konkrét érték megadva, minden más esetben em-et használok.
Néztem én is néhány plugin-t, bosszankodtam is, miért működnek.Azonban úgy voltam vele, nagyon égő, ha ilyen egyszerű feladatra is plugint használok. No meg abból nem is tanulok.
Azért pl. fájlletöltésre már simán használom a jDownloadert. -
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.) -
jeges
senior tag
válasz
Siriusb #2057 üzenetére
én ezeket használom most:
function getStyle(oElm, strCssRule){
try{
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle){
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
}
else if(oElm.currentStyle){
strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
strValue = oElm.currentStyle[strCssRule];
}
var num = strValue.replace(/[\sa-z]+/gi, '');
var str = strValue.replace(/[\d\.]+/i, '');
return [parseFloat(num), str];
}catch(er){return [0,"px"];}
}
function setStyle(obj,st,vl){
var a = obj.style.cssText;
obj.style.cssText = (a.length>0) ? a + ";" + st + ":" + vl : st + ":" + vl ;
}
function removeStyle(obj,st){
str = new RegExp("(?:\\b|^)" + st + "\\s?:[^;]*(?:$|;)", "i");
obj.style.cssText = obj.style.cssText.replace(str, "");
}ie6+, ff, opera, chrome megette eddig.
-
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. -
Siriusb
veterán
válasz
Sk8erPeter #2055 üzenetére
Hrrrrrrrrrrrrrrrrr. A css-ben a font-size medium-ként van megadva, nem pixelben. Chromium, FF és gondolom minden más böngésző pixelt ad vissza a jquery css() függvényre. IE medium-ot.
Tudom, a legegyszerűbb megoldás px-ben megadni, de nincs rá lehetőség, hogy IE-nél is kinyerjem valahogy a pixel számértéket? -
Siriusb
veterán
válasz
Sk8erPeter #2055 üzenetére
Csak sima listaelemekben vannak. Szerintem azért írtam preventDefault()-ot, hogy biztosra menjek.
Kipróbálom a javaslataidat, kösz. Ha nem megy, még jövök. -
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. -
Siriusb
veterán
Készítettem egy kódot weboldal betűméret változtatására, mely Firefoxban természetesen működik, IE-ben:
$("li.fel,li.le,li.eredeti").each(function(){
$(this).hover(function(){$(this).css("color","red")},
function(){
szin = $("#tartalom").css("color");
$(this).css("color",szin)});
$(this).click(function(e){
e.preventDefault();
$(this).fontSize();
});
});és
jQuery.fn.fontSize = function() {
switch ($(this).attr("class")) {
case "fel":
betumeret = parseInt($("#tartalom").css("font-size").replace(/px/, ""));
if (betumeret < 24){
ujMeret = betumeret + 1;
$("#tartalom").css("font-size", ujMeret + "px");
}
break;
case "le":
betumeret = parseInt($("#tartalom").css("font-size").replace(/px/, ""));
if (betumeret > 10){
ujMeret = betumeret - 1;
$("#tartalom").css("font-size", ujMeret + "px");
}
break;
default:
$("#tartalom").css("font-size","medium");
break;
}
};Lenne valakinek javaslata a megoldásra?
-
Hujikolp
őstag
Üdv!
Lehet olyan scriptet írni, amely egy input mezőből a szöveget hozzáfűzi egy meglévő fájlhoz? Mindez persze a sajátgépen lenne futtatva, nem szerveren vagy hasonló. IE6 alatt, más alá nem kell, hogy kompatibilis legyen. Amit eddig találtam a neten, azok vagy nem mentek, vagy bajuk volt. Lehetőleg ne keljen állandóan megerősíteni az írást.
-
v2izzy
tag
Köszi a segítségeket!
-
jeges
senior tag
a "nagyobb" függvénytárak mind tudnak ilyesmit gyártani Neked (lásd pl itt, ill az előttem szóló példáit)
ha magad szeretnél ilyesmit, vagy nem akarsz külső függvénykönyvtárat használni, akkor a js eseménykezelési eljárásairól olvasgass (event delegation)
konkrét példát/kódot mondani nem könnyű a konkrét oldal ismerete nélkül. -
v2izzy
tag
válasz
Sk8erPeter #2045 üzenetére
Pl. a konkrét problémám, hogy egy oldalon egy gombnyomásra előjön egy div középre pozicionálva és ha azon kívül kattintanak akkor zárja be, vagy mint pl. a facebook-nál ha az Account-ra kattintasz, akkor ha a megjelenő ul-en kívül kattintasz akkor eltűnik.
Remélem már érthető. -
v2izzy
tag
Hello!
Valaki tudna nekem adni egy olyan kódot/függvényt, ami azt csinálja, hogy ha egy adott elemen kívül kattintok akkor pl. bezárja azt.
A segítséget előre köszönöm!
-
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. -
Pho3bus
tag
Üdv mindenkinek!
A kérdésem a következő lenne :
<script type="text/javascript">
var myCalendar = new JEC('myCalendarContainer');
myCalendar.showCalendar();
</script>Ez a kód jelenítene meg egy naptárat, hogyan tudnám használni, hogy csak akkor jelenjen meg, hogy ha a felhasználó be van jelentkezve? Előre is köszönöm.
-
Badb0y
addikt
Akarom mondani Java scripthez. Írtam még anno egy shell scriptet ami egy oldal megváltoztatása miatt már nem működik, és kellene nekem valaki olyan, aki ért javascripthez.
Főleg regexpes az egész, de kéne tudni magát a program felépítését is. regexpekkel nem kell szívni azokat megoldanám, csak a program működésében, mit miért hogyan csinál, hogy lehetne emulálni...
-
Badb0y
addikt
Valami hozzáértő emberke írjon privát üzit, lenne egy kis munkám számára. Árban megegyezünk.
-
Jim-Y
veterán
válasz
Sk8erPeter #2038 üzenetére
Tényleg jól hangzik, majd ha hazaértem akkor meglesem közelebbről
-
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]. -
Jim-Y
veterán
válasz
Sk8erPeter #2036 üzenetére
Mi ez a pastebin ?
-
Jim-Y
veterán
válasz
Sk8erPeter #2032 üzenetére
Azért csináltam így, megmondom őszintén, mert én nem vettem észre, hogy a C az ( ) -ben van, és nem [ ] -ben
próba .. de itt PH-n mindkettő []-ben van, akkor így viszont nem értem a hsz-ed
mod: jah látom már, hogy mire gondolsz, nem tudom, hogy ott miért kerekbe rakta a C-ket pedig én már az elejétől kezdve mindenhova [] szögletest tettem.. érdekes, nekem fel sem tűnt, hogy az egyik hszemben rosszul van...
-
Jim-Y
veterán
Szia, az a gond ezzel a regexpel, hogy csak a digit-re egy alternatíva, egyébként amit múltkor írtál az tök jól működik
Amire legutóbb kértem segítséget ott fontos, hogy csak azokat (azt) a stringet találja meg ami: ( digit + áfa ) alakú, és végül sikerült is ilyet csinálni, szv most minden happy
A program is készen van, vagy legalábbis használható
[link]
-
Jim-Y
veterán
Szia, tudnál segíteni egy olyan regExp-ben ami egy szövegben egy ilyen stringet talál meg?
példa: (394.300 Ft + áfa)
Nekem az kéne, hogy egy ilyet felismerjen, akkor x.search(regExp) visszaadná a nyitó zárójel pozícióját ami nekem tökéletes lenne.. üdv
Eddig ezt hoztam össze magamtól: var end = /(\(*(áfa)\))/g;
Gyanítom, hogy az escapet rosszul használtam a \( -nél :S
Egyébként erre már csinál valamit, de csak az "áfa"-t találja meg, így az előtte levő számot, és nyitózárójelet nem -
Jim-Y
veterán
Szia
a digitet az első hsz-em után én is átírtam, mert rájöttem, hogy rossz, escapet én is raktam a pont elé így: /[0-9]+(\.)[0-9]+(\s)(Ft)/g; , de most átírom arra amit írtál, mert jó kis ötletek vannak benne
Neee... és megy
kicsit ugyan át kellett írnom a digitet erre:
var digit = /([0-9]+(\.)[0-9]+(\s)+Ft)/g;LAP: GIGABYTE GA-870A-UD3 -- 27.106 Ft
CPU: AMD Phenom II 965 3.40Ghz AM3 BOX Black Edition -- 34.775 Ft
RAM: KINGSTON 4096MB DDR3 1333MHz CL9 KIT KVR1333D3N9K2/4G -- 11.025 Ft
VGA: GIGABYTE GV-N460OC-768I GTX460 768MB GDDR5 PCIE -- 41.225 Ft
HDD: SAMSUNG 1000GB F3 7200rpm 32MB SATA2 HD103SJ -- 13.125 Ft
ODD: LG GH22NS50 Fekete OEM -- 4.250 Ft
HÁZ: GIGABYTE GZ-X1 Fekete -- 9.709 Ft
TÁP: GIGABYTE Superb 460W -- 9.012 Ftde az eredmény magáért beszél ^^ nagy-nagy köszi
-
jeges
senior tag
az fog megjelenni a '$1' helyén, amit zárójelbe teszel. mivel a digit változódban a . van zárójelben, ezért egy . jelenik meg. tedd a teljes kifejezés köré a zárójelet -> /(kifejezés)/gi
szerk:
var digit = /([0-9]+\.[0-9]+\s+Ft)/g;
tettem egy +-t a \s mögé, hátha elírja valaki, meg egy escape-et a . elé, hogy ne "bármilyen karakter" nek ismerje fel, hanem .-nak
(bocs, nem teszteltem, ezt már rád bízom) -
Jim-Y
veterán
Szia, köszi ez már majdnem jó
lehet, hogy én használtam rosszul, de most ez lesz az output:
LAP: GIGABYTE GA-870A-UD3 [M](C).(/C)[/M]
CPU: AMD Phenom II 965 3.40Ghz AM3 BOX Black Edition [M](C).(/C)[/M]
RAM: KINGSTON 4096MB DDR3 1333MHz CL9 KIT KVR1333D3N9K2/4G [M](C).(/C)[/M]
VGA: GIGABYTE GV-N460OC-768I GTX460 768MB GDDR5 PCIE [M](C).(/C)[/M]
HDD: SAMSUNG 1000GB F3 7200rpm 32MB SATA2 HD103SJ [M](C).(/C)[/M]
ODD: LG GH22NS50 Fekete OEM [M](C).(/C)[/M]
HÁZ: GIGABYTE GZ-X1 Fekete [M](C).(/C)[/M]
TÁP: GIGABYTE Superb 460W [M](C).(/C)[/M]Tehát már hozzáfűzi a dolgokat csak az árak nem jelennek meg, hanem helyette egy 'pont'
Így használom a függvényt:
area = wrapText(area,digit,"[M](C)","(/C)[/M]");
-
jeges
senior tag
-
Jim-Y
veterán
Sziasztok, kis segítség kéne.
van egy textarea-m amiben van szöveg, ezt elmentem egy area nevű változóba, majd egy ilyen kódot csinálok:
var digit = /[0-9]+(.)[0-9]+(\s)(Ft)/g;
var match = digit.exec(area);
area = area.replace(match[0],"[M](C)"+match[0]+"(/C)[/M]");Ez most azt csinálja, hogy a szövegben lévő első -a digit regExp általál megtalált találatot, ami esetünkben egy ilyen alakú szám: "12.000 Ft"- találatot lecseréli, a találata plusz hozzárakja ezt: "[M](C)"+match[0]+"(/C)[/M]"
Nekem olyan kód kéne, ami végigmegy a szövegen (area változó) és minden egyes találatnál lecserélné a találatot magára a találatra, de elébiggyesztené ezt: "[M](C)"(/C)[/M] , valamint mögé ezt:[M](C) "(/C)[/M]"
Gyakorlatban amit szeretnék:
példa szöveg:
Alaplap GIGABYTE GA-H55M-UD2H 1 db 22.538 Ft
Processzor INTEL Core i3-540 3.06Ghz 1156 BOX 1 db 26.650 FtEzt most lecseréli erre:
[B]LAP:[/B] GIGABYTE GA-H55M-UD2H [M](C)22.538 Ft(/C)[/M]
[B]CPU:[/B] INTEL Core i3-540 3.06Ghz 1156 BOX 26.650 FtDe amint látjátok, csak az első találot cserélte le az árnál, a másodikat már nem
Tudom, hogy jelen esetben a match[0] miatt teszi, de így legalább csinált valamit
üdv és köszi
-
D@ni88
addikt
válasz
Brown ügynök #2018 üzenetére
azt csak xhtml-ben kell nem?
-
D@ni88
addikt
válasz
Brown ügynök #2015 üzenetére
hát hogy keresztnev nevű változóra nem működik a nev nevű változónévvel meg jó
-
D@ni88
addikt
válasz
Brown ügynök #2013 üzenetére
tudom, phpvel is leellenőrzöm természetesen.
Tudsz valami ötletet erre a hülye változónév problémára?
-
D@ni88
addikt
-
D@ni88
addikt
Most már kezdem feladni a javascriptet...
A form:
<tr><td><label>Vezetékneve: </label></td><td><input type='text' class='szerk' id='vezeteknev' name='ktszvnev'
onFocus="if(this.className=='kezdo'){
this.value='';
this.className='szerk';
this.type='text';
};"
onBlur="if(this.value.length==0){
this.className='kezdo';
this.value='';
};"
></td>
</tr>
<tr><td><label>Keresztneve: </label></td><td><input type='text' class='szerk' id='keresztnev' name='ktsz_knev'
onFocus="if(this.className=='kezdo'){
this.value='';
this.className='szerk';
this.type='text';
};"
onBlur="if(this.value.length==0){
this.className='kezdo';
this.value='';
};"
></td>És a Javascript ami ellenőrzi:
var vezeteknev=document.getElementById('vezeteknev');
var keresztnev=document.getElementById('keresztnev');
var uzenet="";
if(vezeteknev.value.length <= 0)
{
uzenet=uzenet+ " - Nem adott meg vezetéknevet! \n";
}else
{
if(vezeteknev.value.length >40)
{
uzenet=uzenet+ " - A vezetéknév túl hosszú! \n";
}
else
{
var minta=new RegExp("^[a-zA-Z- áéíóöőúüűÁÉÍÓÖÚÜŰ]{0,40}$");
if (minta.test(vezeteknev.value)==false)
{
uzenet=uzenet+" - A vezetéknévben nem használhat speciális karaktereket!"
};
};
};
if(keresztnev.value.length <= 0)
{
uzenet=uzenet+ " - Nem adott meg keresztnevet! \n";
}else
{
if(keresztnev.value.length >40)
{
uzenet=uzenet+ " - A keresztnév túl hosszú! \n";
}
else
{
var minta=new RegExp("^[a-zA-Z- áéíóöőúüűÁÉÍÓÖÚÜŰ]{0,40}$");
if (minta.test(keresztnev.value)==false)
{
uzenet=uzenet+" - A keresztnévben nem használhat speciális karaktereket!"
};
};
};a Vezetéknevet átadja és működik is rá a script, viszont ha már a keresztnév ellenőrző kód is ottvan, akkor lehal az egész...
-
D@ni88
addikt
most átnéztem a kódot, és egy warningot azért jelez a komodo, mert nincs ott a return érték. De végülis ott a return az if-be.
ilyenkor mit lehet csinálni? -
D@ni88
addikt
Most belefutottam valami gyönyörű hibába. Ha behozom a regisztrációs űrlapot, amit JS-el ellenőrzök, és van rajta egy Jquery-s felugró ablak hiba esetén. akkor működik minden rendesen. Viszont ha átmegyek másik menüpontba, és vissza akarnék menni akkor csak tölt és tölt...
Viszont másik menüpontba megy rendesen...
Persze hiába zárom be a böngészőt, valamiért még megmarad eszközkezelőben. nem zárja végleg...
pedig az összes JS le van zárva -
D@ni88
addikt
még annyi kérdésem lenne, hogy miként lehet kiszűrni realtime-ba javascriptel hogy az adott felhasználónév foglalt-e. Ahogy gépelte a user akkor ellenőrizze
-
D@ni88
addikt
Köszönöm , most már működik rendesen!! Igaz csak j0k3r! féle megoldást próbáltam, de az egyből jó lett. Köszi
-
D@ni88
addikt
hali
kicsit elakadtam és fogalmam sincs mi a hibaif(uzenet.value !="")
{
alert(uzenet);
return false;
}
if(uzenet.value =="")
{
return true;
}az uzenet változóba pakolom bele a hibaüzeneteket. hogy az űrlap kitöltése során milyen hibákat vétett a felhasználó. igen ám, de amikor a visszatérési értéket adnám meg. Ha hibát vétek a kitöltés során, akkor azt ki is írja rendesen.
Viszont ha helyesen töltöm ki, tehát az uzenet változó ekkor üres. és meg kéne kapnia a true értéket. de sajnos mégse, megjelenik egy üres alert ablak.
próbáltam már uzenet.value.length == 0 - val is de azzal se mentem többre. valamiért elakadt.
valami ötlet? -
radmin
csendes tag
Sziasztok!
Egy kis segítséget szeretnék kérni.
<form>
<select id="mainselect">
<option value="0">Válassz...</option>
<option value="1">Csak az első</option>
<option value="2">Mindkettő</option>
</select>
<input type="text" id="m1" name="mezo1" size="5" />
<input type="text" id="m2" name="mezo2" size="5" />
</form>Adott a fenti form.
Azt hogyan lehet megoldani JavaScript segítségével, hogy amikor kiválasztom a select-ben a "Csak az első"-t, akkor csak a mezo1 jelenik meg, ha a másikat választom, akkor pedig mindkét mező megjelenik?
onchange eseménnyel próbálkoztam, de nem nagyon akart összejönni a dolog.A segítséget előre is köszönöm!
radmin
Új hozzászólás Aktív témák
Hirdetés
- AKCIÓ! MSI B365M i5 8600 16GB DDR4 512GB SSD RX 5700XT 8GB CM MASTERBOX Q300L Zalman 600W
- BESZÁMÍTÁS! SAPPHIRE VEGA 64 8GB HBM2 videokártya garanciával hibátlan működéssel
- Azonnali készpénzes félkonfig / félgép felvásárlás személyesen / csomagküldéssel korrekt áron
- Bomba ár! Fujitsu LifeBook U757 - i3-7GEN I 16GB I 256SSD I 15,6" FHD I HDMI I Cam I W11 I Garancia!
- Eladó szép állapotban levő Huawei P30 Pro kék 6/128GB 12 hónap jótállással!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest