- Ilyen lesz a Fairphone 6
- Yettel topik
- Csíkszélességben verné az Exynos 2600 a Snapdragon 8 Elite 2-t
- Milyen okostelefont vegyek?
- Xiaomi 13 - felnőni nehéz
- Keretmentesít a Galaxy S25 FE
- Realme GT Master Edition - mestermunka
- iPhone topik
- 6 év biztonsági támogatást ígér a Motorola
- One mobilszolgáltatások
-
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
-
jeges
senior tag
válasz
Sk8erPeter #2236 üzenetére
nem gáz, bár van saját pastebin account-om is.
igazából azt gondoltam, ha valahol, akkor a saját domain-emen már csak megmarad, ezér' raktam oda. de értékelem a jó szándékot. -
jeges
senior tag
válasz
Sk8erPeter #2234 üzenetére
az azér' érdekes, mer' én is chrome-ba' próbáltam tegnap.
most hirtelen megnéztem ff-ben is, ott is megy, de alapvetően mindenhol kéne működjön (chrome, ff, opera, ie legalább)a lényege az, hogy az "a" tagre klikkelve (azaz a kéken belül) semmi nem történik, azon kívül viszont (a feketén ill a zöldeken belül) a számláló érzékeli a klikket, és eggyel növeli a jobb felsőben lévő négyzetbe írt számot.
-
jeges
senior tag
válasz
Speeedfire #2231 üzenetére
erőltetni azér' nem kell
-
jeges
senior tag
válasz
Speeedfire #2229 üzenetére
parancsolj: példa
kicsit bénácska, de az elv a lényeg, ami működik
próbálj klikkelgetni az ul, a li és az a tag-ek belsejébe, és figyeld a jobb felsőben lévő négyzetet
simán kimásoltam a kódot innen, és beleírtam, hogy növelje a divben lévő számot eggyel -
jeges
senior tag
válasz
Speeedfire #2226 üzenetére
dupla volt
-
jeges
senior tag
válasz
Speeedfire #2226 üzenetére
sztem félreértesz. arra szeretnék rámutatni, hogy ilyesmit úgy érdemes csinálni, ha nem a "li, de nem a" módon definiált elemre akarod aggatni az eseményt, hanem egyszerűen a #menu elemre. nagyjából így:
$('#menu').bind('click',function(e){
// "e" az esemény, amit elkaptunk, "t" az elem, amin elkaptuk
if(!e)e = window.event;
var t = e.target || e.srcElement;// "A" elemen nem csinálunk semmit
// ff-ben kicsit béna a text node-ok kezelése, ezért kell a parentNode-ot is vizsgálni
if(t.nodeName == "A" || t.parentNode.nodeName == "A")return;// egyébként az effektet futtatjuk
// ide írd az effektet, csak arra kell ügyelni, hogy "t" az elem, amire klikkelt a user// és a vége (nem kötelező)
return false;
});úgy is megoldható, ahogy Te elkezdted, csak nem túl hatékony, és kevésbé átlátható, mivel a li és az a elemek definíciói némileg kavarodnak.
a "kulcs" végső soron az, hogy a szülőn kapod el a gyerekek eseményeit, és miután eldöntötted, hogy melyik gyerektől származik a klikk, azt is eldöntheted, mit kezdesz vele.
-
jeges
senior tag
válasz
Speeedfire #2224 üzenetére
mivel a klikk a gyerekről a szülőkre "terjed" (event bubbling), ezt úgy tudod megoldani, ha a menüre definiált eseményben "elkapod" az a elemeken történt eseményt is. normál js-ben ez viszonylag egyszerű:
(feltételezve, hogy a teljes struktúra egy "menu" elembe van ágyazva)
menu.onclick = function(e){
// az esemény
if(!e)e = window.event;// az elem, amire klikkeltünk
var t = e.srcElement || e.target;// ha az A elemen vagy annak gyerekén vagyunk, nem csinálunk semmit
if(t.nodeName == "A" || t.parentNode.nodeName == "A")return;// itt csinálunk valamit
...// nem kötelező, de megakadályozzuk a klikk tovább-terjedését
return false;
}(szerk: javítás)
-
jeges
senior tag
válasz
BullZeye #2203 üzenetére
nem biztos, hogy jól értem, mit szeretnél: a kérdésben olyasmit írtál, hogy ha rákattintasz a linkre, úgy marad. ebből nekem az jött le (lehet, tévesen), hogy ha valaki rákattint, neki úgy marad, másoknak meg nem. ezek szerint valami admin-felületet szeretnél, ahol beállíthatod, melyik link legyen a kiemelt egy-egy sorozatból?
-
jeges
senior tag
válasz
BullZeye #2201 üzenetére
ehhez nincs szükség szerver-oldali kódra. önmagában az, hogy klikkre történjen valami a felületi elemmel (pl változzon a színe, mérete, háttérszíne, stb.), jó esetben elérhető html+css kóddal is (erre vannak többek közt a css pszeudo-osztályok). bonyolultabb (pl áttünések) történésekhez szokás javascriptet használni.
-
jeges
senior tag
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>teszt</title>
<link rel="stylesheet" media="screen" charset="UTF-8" type="text/css" href="xc/css/xc.css" />
<style type="text/css">
#tst {width:800px; height:400px; display: block; float:left;}
</style>
<script type="text/javascript">
window.onload = function(){
lm = function(s){
return document.getElementById(s);
}
button1.onmouseup = function(e){
lm("res").innerHTML = lm("tst").getElementsByTagName("option")[lm("txt").value].innerHTML;
}
button2.onmouseup = function(e){
var o = lm("tst").getElementsByTagName("option");
for(var i in o){
if(o[i].selected) lm("res").innerHTML = o[i].innerHTML;
}
}
}
</script>
</head>
<body>
<select id="tst" style="display:block;">
<option value="0000">00000</option>
<option value="0001">00010</option>
<option value="0002" selected>00020</option>
<option value="0003">00030</option>
</select><br><br>
<input type="button" id="button1" value="show" style="display:inline;">
<input type="text" id="txt" style="width:100px;display:inline;" value="1">
<p style="display:inline;">. elem</p><br>
<input type="button" id="button2" value="show selected" style="display:block;">
<div id="res" style="display:block;float:left;position:relative; width:100px;height:60px;background:yellow"></div>
</body>
</html> -
jeges
senior tag
hirtelen ezek jutnak eszembe:
gyors, rugalmatlan és nem túl szép: title használata
viszonylag egyszerű, de csak egy fokkal szebb: spec karakter (lásd előző hsz-ben)
egyszerű, de jq kell hozzá és nem működik mindenhol: .data()
egyszerű, de külső függvény kell hozzá: json objektuma probléma természetétől és bonyolultságától függően bármelyik alkalmas lehet.
-
jeges
senior tag
válasz
Brown ügynök #2140 üzenetére
ez az üzenet akkor szokott megjelenni, ha egy json objektumban nem stimm valami. olyan karaktert kapott, amit nem szeret (pl. aposztróf )
egyébként méér kell eval?
-
jeges
senior tag
válasz
summoner #2133 üzenetére
a script tag-et a <head>-be kéne tenni, de igazából nem egyértelmű, mi az elvárt:
1) eleve más betűtípust szeretnél: ekkor a css-ben kell átarni, nincs js
2) valami eseményre (pl div-be klikkre) akarod módosítani a típust, ekkor a js eljárásban hozzá kell kötni az elem eseményéhez a módosításta) a head részben:
var lm = document.getElementById("enDivem");
lm.onclick = function(e){
<kód>
}+ a body-ban pedig a div:
<div id="enDivem">b) vagy a div-be definiálod bele, ekkor kb:
a html head-ben:
<script type="text/javascript">
function divClick(){
<kód>
}
</script><div id = "enDivem" onclick="divClick">
(normál esetben az 1, ill 2 a) preferált, a 2 b) elfogadható)
-
jeges
senior tag
válasz
Brown ügynök #2127 üzenetére
debug-hoz ez kicsit kevés. több kellene.
-
jeges
senior tag
válasz
Brown ügynök #2125 üzenetére
nem, tényleg nem kell hozzá, "csak" egy jquery.
emez bonyolultnak tűnhet, viszont önállóan is müxik -
jeges
senior tag
no most van egy kis időm öszeszedni a kódot:
css:
.hiddenClass {display:none;}
js:
function hasClass(lm,cl) {
var r = new RegExp("\\b" + cl + "\\b", "i");
if ( lm && lm.className && lm.className.match(r) !== null ) return true;
return false;
}
function addClass(lm,c){
lm.className = (lm.className.length > 0) ? lm.className + " " + c : c;
}
function isParent(p,lm){
if(!p || !lm)return false;
if ( p == lm ){
return true;
} else if (lm.parentNode) {
while (lm = lm.parentNode){ if ( p == lm ) return true; }
}
return false;
}
document.onmouseup = function(e){
if (!e)e = window.event;
var t = e.target || e.srcElement;
var lm = document.getElementById("ID"); // ez itt az eltüntetendő elem
if(!hasClass(lm, "hiddenClass") && !isParent(lm, t))lm.className += "hiddenClass";
} -
jeges
senior tag
válasz
Brown ügynök #2122 üzenetére
írtam, hogy class-t definiálni kell nyilván css-ben (mondjuk display:none; )
abban igazad van, hogy mindig hozzáadódik, de ezt egy class vizsgálattal lehet rendezni.
pl.function hasClass(ob,cl) {
var r = new RegExp("\\b" + cl + "\\b", "i");
if ( ob && ob.className && ob.className.match(r) !== null ) return true;
return false;
}a document.onmouseup-ba pedig vedd be, hogy csak akkor adja hozzá a classt, ha a fenti fv false-ot ad.
pl.
var lm = document.getElementById("ID");
if (!hasClass(lm, "hiddenClass"))lm.className += " hiddenClass";szerk: jelen esetben ez úgy fog kinézni, hogy
if (t != lm && !hasClass(lm, "hiddenClass"))lm.className += " hiddenClass"; -
jeges
senior tag
válasz
Brown ügynök #2120 üzenetére
nem, a document.onmouseup minden katt-ra végrehajtódik (bárhová is katt), de csak akkor tünteti el a div-et, ha nem a div-be kattintottál. ezt csinálja az if(lm != t) feltétel (lm a div-ed, t a katt esemény forráseleme (ie-ben srcElement, mindenhol máshol target). ha a kettő eltér (azaz kikatt a div-ből), eltüntetjük a div-et.
(most látom, kicsit elírtam, mer' a className += után kellene egy space is, hogy ne egybe írja az előző class-okkal.)
-
jeges
senior tag
válasz
Brown ügynök #2118 üzenetére
ez a "kikattintós" cucc szerintem azt feltételezi, hogy van egy document.mouseup vagy document.mousedown függvényed, amiben megmondod a js-nek, hogy tüntesse el a megadott elemet. emlékeim szerint a jquery ezt automatán tudja egyébként, bár most nincs előttem a kódja.
pl. ha "ID" az eltüntetendő elem
document.onmouseup = function(e){
if (!e)e = window.event;
var t = e.target || e.srcElement;
var lm = document.getElementById("ID");
if(t != lm)lm.className += "hiddenClass";}
blur azér' nem jó, mer' ilyen eseménye csak input elemeknek van, div-nek nincs.
mellékszál, de én className-mel operálnék közvetlen style manipulálás helyett, ez tkp szabadon választott.
persze lehet még szinezni (pl. van-e gyereke a vizsgált elemnek), de most az elv átadására törekedtem.
szerk: a document.onmouseup helyett persze lehet addEventListener-t is használni, de annak is megvannak a korlátai, most az egyszerűség végett a "hagyományos" .onmouseup-ot használtam.
-
jeges
senior tag
válasz
Brown ügynök #2116 üzenetére
a "tel" az valami div?
én createElement-tel, ill appendChild-dal/insertBefore-ral oldanám meg, jquery-ben append-del."meztelen" js-ben pl:
var tel = document.getElementById("tel");
var newInput = document.createElement("input");
newInput.type = "text";
newInput.value = "inpVal";
newInput.className = "inputClass";
tel.appendChild(newInput);ezzel a korábbi gyerekeket bántatlanul hagyod
ha nem az utolsó helyre rakod, akkor kell insertBefore.jquery-ben:
var newInput = "<input type='text' value='inpVal' class='inputClass'>";
$("#tel").append(newInput);(most konkrét példán nem próbáltam ki, de az elv remélem lejött: nem innerHTML-t hanem közvetlen dom-ot kell manipulálni)
-
jeges
senior tag
válasz
Brown ügynök #2113 üzenetére
ha az id egyedi, simán lehet stringből összerakni:
ha "id" az egyedi azonosítód:
var nm, obj;
nm = "#" + id;
obj = $(nm);sőt:
var obj = $( "#" + $("#otherid").val() );
(ha másik elemből akarod kivenni az elem id-jét)postoláshoz a $.post() javallott.
-
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. -
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 -
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.
-
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. -
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) -
jeges
senior tag
Új hozzászólás Aktív témák
Hirdetés
- AKCIÓ!! i9 9900 , RX 5700 XT , 32GB DDR4 , 512GB NVME , 2TB HDD
- Inspiron 14 7440 2-in-1 14" FHD+ IPS érintő Core 5 120U 16GB 512GB NVMe magyar vbill ujjolv gar
- Garis ZOTAC GeForce RTX 4070 Ti Trinity 12GB GDDR6X videokártya
- Nokia mobilgyűjtemény - E-series + 2 klasszikus
- Siemens SL 45 - magyar, dobozos, ingyen Fox
- Csere-Beszámítás! AMD Ryzen 7 9700X Processzor!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Csere-Beszámítás! Asus Tuf RX 9070 XT 16GB Videokrátya! Bemutató darab!
- Azonnali készpénzes AMD Radeon RX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Kingmax 2x2GB DDR3 1333 RAM eladó
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged