Hirdetés

2024. június 17., hétfő

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2014-02-25 10:20:57

LOGOUT.hu

JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)

Összefoglaló kinyitása ▼

Hozzászólások

(#2051) jeges válasza Hujikolp (#2050) üzenetére


jeges
senior tag

igen, lehet, de a működése a böngésző, valamint a windows beállításaitól függ, nem pedig a programtól. ugyanez vonatkozik a megerősítésre is.

(#2052) Hujikolp válasza jeges (#2051) üzenetére


Hujikolp
őstag

És ezek a beállítások fájlban valahol el vannak tárolva, vagy regeditben?

Gondolom azt a biztonsági csúszkát kell lejjebb állítani. Ha viszont egy korlátozott felhasználó van, akkor is lejjebb lehet valahol állítani?

(#2053) jeges válasza Hujikolp (#2052) üzenetére


jeges
senior tag

amennyire én tudom, az ie saját beállításain túl az oprdsz jogosultsági beállításai számítanak. azaz hiába írnál egy fájlt böngészőből, ha a win szerint nincs hozzá jogod. ie6-ban alapvetően az activex vezérlőket kell engedélyezni.

(#2054) Siriusb


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?

(#2055) Sk8erPeter válasza Siriusb (#2054) üzenetére


Sk8erPeter
nagyúr

Ú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

(#2056) Siriusb válasza Sk8erPeter (#2055) üzenetére


Siriusb
veterán

Csak sima listaelemekben vannak. Szerintem azért írtam preventDefault()-ot, hogy biztosra menjek. :D
Kipróbálom a javaslataidat, kösz. Ha nem megy, még jövök. ;)

(#2057) Siriusb válasza Sk8erPeter (#2055) üzenetére


Siriusb
veterán

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?

(#2058) Sk8erPeter válasza Siriusb (#2057) üzenetére


Sk8erPeter
nagyúr

É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? :F 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

(#2059) jeges válasza Siriusb (#2057) üzenetére


jeges
senior tag

é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.

(#2060) Siriusb válasza jeges (#2059) üzenetére


Siriusb
veterán

wow, nem semmi... :)

@Sk8erPeter
Mivel a css-ben is medium-ra van állítva. Mindazonáltal a legtisztább megoldás mégis a px-ben történő értékadás lesz.

Kösz mindkettőtöknek a válaszokat.

(#2061) Sk8erPeter válasza Siriusb (#2060) üzenetére


Sk8erPeter
nagyúr

"Mivel a css-ben is medium-ra van állítva."
Erről beszélek, hogy ezt változtasd meg... :U

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? :U
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.) :)

[ Szerkesztve ]

Sk8erPeter

(#2062) Sk8erPeter válasza Sk8erPeter (#2061) üzenetére


Sk8erPeter
nagyúr

Ez is jónak tűnik: [link], [link], [link], stb.

Sk8erPeter

(#2063) Siriusb válasza Sk8erPeter (#2061) üzenetére


Siriusb
veterán

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. :DDD 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. :B

(#2064) jeges válasza Siriusb (#2063) üzenetére


jeges
senior tag

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

(#2065) Siriusb válasza jeges (#2064) üzenetére


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. :)

(#2066) MoW


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!
:F

"There is no patch for stupidity" Kevin Mitnick

(#2067) Sk8erPeter válasza MoW (#2066) üzenetére


Sk8erPeter
nagyúr

Az kemény.
<id="1" style="font-size:50px;">
Ez szerinted mégis milyen HTML-elem? :Y :DD

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"? :D

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

(#2068) jeges válasza MoW (#2066) üzenetére


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.

(#2069) ubid


ubid
őstag

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.

-.-

(#2070) ntomka válasza ubid (#2069) üzenetére


ntomka
nagyúr

Hát nyilván jó lenne látni ahhoz, hogy meg tudjuk mondani mi a hiba. :)

ツ Headphones on - World off

(#2071) ubid


ubid
őstag

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

-.-

(#2072) ntomka válasza ubid (#2071) üzenetére


ntomka
nagyúr

Ha jól látom ez alapján csináltad: [link]. Mondjuk nekem nincs 3.6-os firefoxom már, így nem tudom megnézni hogy viselkedik, de ha egy az egyben lemásoltad ezt a kódot, akkor gondolom jónak kéne lennie.

ツ Headphones on - World off

(#2073) ubid


ubid
őstag

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

-.-

(#2074) ntomka válasza ubid (#2073) üzenetére


ntomka
nagyúr

És a mintaoldalt nézve jól megy?

ツ Headphones on - World off

(#2075) ubid


ubid
őstag

sajnos igen :D::D

-.-

(#2076) ntomka válasza ubid (#2075) üzenetére


ntomka
nagyúr

Akkor valami csak nem lett jól lemásolva. :) Ezt behúztad?

ツ Headphones on - World off

(#2077) ubid


ubid
őstag

igen teljesen ezt és csak a szövegen változtattam. de máshol fut rendesen :S
ie. mozzila 4 ... chrome...

-.-

(#2078) Sk8erPeter válasza ubid (#2077) üzenetére


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

(#2079) ubid


ubid
őstag

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!

-.-

(#2080) Arki válasza MoW (#2066) üzenetére


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>
?

Comodo:http://comodo.freegamespalace.org, blog: http://geza.freegamespalace.org, olcsó tár: http://secure.hostgator.com/cgi-bin/affiliates/clickthru.cgi?id=gabrielg

(#2081) Sk8erPeter válasza Arki (#2080) üzenetére


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? :F
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

(#2082) Brown ügynök


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?

[ Szerkesztve ]

"hacsak nem jön a jó tündér break utasítás képében..."

(#2083) Sk8erPeter válasza Brown ügynök (#2082) üzenetére


Sk8erPeter
nagyúr

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. :P

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.

[ Szerkesztve ]

Sk8erPeter

(#2084) Brown ügynök válasza Sk8erPeter (#2083) üzenetére


Brown ügynök
senior tag

Az benne maradt, nem az a baja.

"hacsak nem jön a jó tündér break utasítás képében..."

(#2085) Sk8erPeter válasza Brown ügynök (#2084) üzenetére


Sk8erPeter
nagyúr

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

(#2086) Brown ügynök válasza Sk8erPeter (#2085) üzenetére


Brown ügynök
senior tag

Az alert(); működik, a fill() fv.-nél van valami bibi.

"hacsak nem jön a jó tündér break utasítás képében..."

(#2087) Sk8erPeter válasza Brown ügynök (#2086) üzenetére


Sk8erPeter
nagyúr

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... :U

Sk8erPeter

(#2088) Brown ügynök válasza Brown ügynök (#2086) üzenetére


Brown ügynök
senior tag

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.

"hacsak nem jön a jó tündér break utasítás képében..."

(#2089) Sk8erPeter válasza Brown ügynök (#2088) üzenetére


Sk8erPeter
nagyúr

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.

[ Szerkesztve ]

Sk8erPeter

(#2090) Brown ügynök válasza Sk8erPeter (#2089) üzenetére


Brown ügynök
senior tag

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() {
...
)};

"hacsak nem jön a jó tündér break utasítás képében..."

(#2091) Sk8erPeter válasza Brown ügynök (#2090) üzenetére


Sk8erPeter
nagyúr

"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....

[ Szerkesztve ]

Sk8erPeter

(#2092) Brown ügynök válasza Sk8erPeter (#2091) üzenetére


Brown ügynök
senior tag

A függvény definícióját $(document).ready(function() {-on kívülre helyeztem ez megoldotta a problémát. Kösz

"hacsak nem jön a jó tündér break utasítás képében..."

(#2093) Sk8erPeter válasza Brown ügynök (#2092) üzenetére


Sk8erPeter
nagyúr

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

(#2094) Arki válasza Sk8erPeter (#2081) üzenetére


Arki
tag

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ó.

[ Szerkesztve ]

Comodo:http://comodo.freegamespalace.org, blog: http://geza.freegamespalace.org, olcsó tár: http://secure.hostgator.com/cgi-bin/affiliates/clickthru.cgi?id=gabrielg

(#2095) Sk8erPeter válasza Arki (#2094) üzenetére


Sk8erPeter
nagyúr

"IE alá fejlesztek"
És? :F 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álat

Csupán 23 millió körüli előny a "document.getElementById" javára. :DD
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.

[ Szerkesztve ]

Sk8erPeter

(#2096) Siriusb


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.

(#2097) Sk8erPeter válasza Siriusb (#2096) üzenetére


Sk8erPeter
nagyúr

Én ezt JS+PHP segítségével oldanám meg.
Pont ilyenről érdeklődött valaki egy másik topicban, itt: [link].
Remélem érthető, amit ott írtam, és hasznát tudod venni.

Ha valami nem világos, kérdezz rá nyugodtan.

[ Szerkesztve ]

Sk8erPeter

(#2098) Siriusb válasza Sk8erPeter (#2097) üzenetére


Siriusb
veterán

Kösz, jó ötlet, szerintem menni fog.

(#2099) Sk8erPeter válasza Siriusb (#2098) üzenetére


Sk8erPeter
nagyúr

Nincs mit! Ha elakadtál, kérdezz. :K

Sk8erPeter

(#2100) Arki válasza Siriusb (#2096) üzenetére


Arki
tag

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.

Comodo:http://comodo.freegamespalace.org, blog: http://geza.freegamespalace.org, olcsó tár: http://secure.hostgator.com/cgi-bin/affiliates/clickthru.cgi?id=gabrielg

Copyright © 2000-2024 PROHARDVER Informatikai Kft.