Hirdetés
- Fűzzük össze a szavakat :)
- "A homoszexualitás természetellenes" 😠
- Nagy "hülyétkapokazapróktól" topik
- Építkezünk 6. rész (2024)
- Egy ház új téglaruhája
- Szárítógép szösszenet (hogy Te ne járj pórul)
- Elektromos rásegítésű kerékpárok
- Segway-Ninebot Kickscooter Max G30E II elektromos roller
- Asszociációs játék. :)
- Szólánc.
Új hozzászólás Aktív témák
-
jeges
senior tag
szia,
én a következőket próbálnám ki:
this helyett $(this)
:eq() helyett .eq() -- beágyazott (úgy értem, a :xxx stílusú) selectorok nem szokták szeretni az ilyen hivatkozásokat, .eq() igen.
ha még mindig nem megy, .each() eljárással próbálkozz. nem feltétlen szükséges, de számomra legalábbis átláthatóbbá válik az aktuális "környezet" (azaz éppen mit jelent a this/$(this) ). aztán ha működik, lehet optimalizálni.valszeg elég lenne valami ilyesmi:
$(".almenu").each(function(){
$(this).bind("click",function(){
$(".leftcontent", ".leftmodule").hide();
$(".leftcontent", ".leftmodule").eq( $(this).index() ).show();
});
});ehhez persze el kell intézni, hogy alapértelmezésben minden leftcontent display:none legyen. én csinálnék egy visible class-t, ami display:block-ot állít, és azt adnám a leftcontent-hez. a fenti így nagyjából úgy nézne ki, hogy
$(".almenu").each(function(){
$(this).bind("click",function(){
$(".leftcontent", ".leftmodule").removeClass("visible");
$(".leftcontent", ".leftmodule").eq( $(this).index() ).addClass("visible");
// esetleg: $(".visible").show();
});
});nem túl optimális a megoldás, de 3-4 gomb esetén nincs érzékelhető különbség.
elnézést, elírás lehet benne még, mer' nem teszteltem...megjegyzés: mindig érdemes minél pontosabb class selectorokat használni, mer' sokat tud lendíteni az oldal performanciáján (lásd $(".leftcontent", ".leftmodule") ). ahol lehet, ott pedig inkább id, az a leggyorsabb.
[ Szerkesztve ]
-
jeges
senior tag
válasz Sk8erPeter #24 üzenetére
de miért .next() ? ha jól értem, az almenü klikkje a .leftcontent cseréjét kéne maga után vonja, azaz a .leftcontent tartalmát kéne cserélgetni. a $(this).next() a Te kódodban az .almenu-re vonatkozik.
vagy én értek félre valamit. -
jeges
senior tag
-
jeges
senior tag
a toggleClass()-nak szerintem csak az osztály(ok)ra van szüksége, a 2000-et talán true-ként tudja értelmezni, de nem biztos, hogy a várt hatást éred el. nem .toggle()-ra lenne szükséged? - szerk: nem, látom, valóban .toggleClass() kell, de a 2000 helyett true-t próbálj meg írni ([link])
lehet, én vagyok lemaradva, de .effect() eljárás van egyáltalán? én ilyen szintaxist találtam hozzá:
selector.hide|show|toggle( "explode", {arguments}, speed );[ Szerkesztve ]
-
jeges
senior tag
"Ja, és jquery-vel le tudod kérdezni a böngésződ verzióját, javaslom ennek függvényében írj két különböző kódot. Az egyik fog futni Chrome-on, a másik meg máshol"
ezt én nem javaslom, inkább egy, de mindenhol működő kódot célszerű írni, mert egy idő után követhetetlen, mi miért került bele. az ilyen böngésző-függő cuccokra a jquery is nagyon odafigyel, ha valami tényleg nem ugyanúgy működik két böngészőben, érdemes nekik bejelenteni, hátha javítják. úgy emlékszem egyébként, hogy a böngésző verzió lekérdezést ők sem ajánlgatják nagyon, vagy legalábbis nem működés vezérlésére (középtájt írják)
-
jeges
senior tag
csak sorban:
var event = jQuery.event - ez pontosan mit akar itt jelenteni? Melyik esemény megy bele az event változóba?
a jQuery.event objektum kerül az event-be (rövidebb, átláthatóbb)
setup() miért false-al tér vissza?
a return false itt az alapértelmezett működést akadályozza meg. bővebben: [link]
teardown() na az mi? és ott is miért fasle-al tér vissza?
a return false itt is ugyanezt jelenti, mint a többi esetben.
na és itt handler() miért van?
lásd a lenti linket
var az változót definiál, de én még nem láttam soha sem ezt a sort: var auto = false, id; ez most micsoda? Két értéket adok meg egy változónak?
két változót egy var-ban definiál, csak az egyiknek értéket is ad
Az algoritmusát valaki eltudná nekem magyarázni?
Illetve a bind('start', start) - ennél a 'start' a start egy javascript event type lenne? Nézegettem javascriptes event type-kat de nem találtam meg konkrétan a start vagy stop-ot, de click, mouseover és társait megleltem.az event.special alapjairól, működéséről itt olvashatsz.
-
jeges
senior tag
ha jól értrm, a text input onfocus eseményére kellene beállítani a kívánt radio checked tulajdonságát (tkp bármire lehet, de a legjobb 'checked' vagy true)
a html struktúra nélkül nem könnyű pontosat mondani, de valami ilyesmi:
$inputTxt.bind('focus',function(){
$radioBtn.attr('checked','checked');
});megjegyzem, nem véletlen sztem, hogy az onblur indítja a check-et, mint a kommentben is írva van, előfordulhat, hogy a user mégsem akarja szerkeszteni, csak véletlen kattintott oda. ezt az esetet nem árt kezelni, mivel ha már a focus-ra kijelölsz, az nem kívánt eredményre vezethet.
-
jeges
senior tag
válasz Brown ügynök #69 üzenetére
option tag selected tulajdonságát állítsd be
(mondjuk arra nem árt figyelni, hogy a többi option-nek ne legyen selected tulajdonsága, ha nem választható ki több elem egyszerre)dom-ban ez valahogy így néz ki:
<select size=1>
<option name='opt1' id='opt' value='1'>1</option>
<option name='opt2' class='opt' value='2'>2</option>
<option name='opt3' class='opt' value='3'>3</option>
</select>és a kijelölés:
$('#opt').attr('selected','selected');a többre pedig:
if($('.opt').attr('selected'))$('.opt').removeAttr('selected'); -
jeges
senior tag
válasz Brown ügynök #71 üzenetére
ugyanígy, csak loop-olsz az option tageken
ill jq-ben .each() talán komfortosabb:var val = <keresett érték>;
$("option").each(function(){
if( $(this).val() == val )$(this).attr("selected", "selected");
else $(this).removeAttr("selected");
}); -
jeges
senior tag
válasz Brown ügynök #77 üzenetére
a select-nek lehet külön id-t vagy class-t adni, az meglehetősen egyértelmű szokott lenni
én így csinálnám:
$(".optionClass", ".selectClass")de css-szerűen is lehet:
$("option.optionClass")a [name=] kijelölőnek is működnie kellene, de egyáltalán nem vagyok meggyőződve róla, hogy a $(this) jól működik, mivel az if() önmagában nem módosítja a $(this) értékét. pont ezért jó az each(), mert a benne foglalt callback függvényben már lehet hivatkozni az aktuális elemre.
-
jeges
senior tag
válasz Brown ügynök #79 üzenetére
+ megjegyzés: ha összetett kijelölő nem megy, használhatsz pl. children()-t:
$(".selectClass").children(".optionClass").each(function(){ <code> });+ megjegyzés: ezt csak "vakon" mondom, de szerintem nincs nagy különbség a halmazzal visszatérő kijelölő és az each() között gyorsaságban, mivel így is úgy is végig kell mennie a programnak az összes opción.
-
jeges
senior tag
válasz Brown ügynök #79 üzenetére
hol írják ezt a korlátot? én nem találtam.
szerk: sőt, ez arra utal, hogy normál kijelölők simán használhatók ("When called it iterates over the DOM elements that are part of the jQuery object.")
közben kipróbáltam, simán megy bármilyen selectorral....
[ Szerkesztve ]
-
jeges
senior tag
válasz Brown ügynök #79 üzenetére
és még egy megjegyzés (mely azonban nem csorbítja a megoldások értékét):
if($('option[value="'+ tcs +'"]').val() == tcs )$('option[value="'+ tcs +'"]').attr("selected", "selected");
itt sztem nincs szükség az if-re, ezzel ugyanazt éred el:
$('option[value="'+ tcs +'"]').attr("selected", "selected");
if a többi option kijelölésének feloldásához kell(het), ahol a value nem tcs.
-
jeges
senior tag
válasz Brown ügynök #83 üzenetére
én az csinálnám, hogy a selectnek adnék classt vagy id-t
ha ez megyvan, akkor pedig$(".selectclassname").children("option").each()
$("#selectid").children("option").each() -
jeges
senior tag
két script tag-et egymásra nyitottál, ezért már megnyitáskor elszáll (16. és 18. soron)
hol teszteled, milyen böngészőben? nincs debug eszközöd, ami mutassa a hibát? nekem chrome-on egyből kihozta, hol a bibi, és gondolom nincs ez másképp operán és ff-on sem (a "rendes" fejlesztőeszközökről már nem beszélve)
[ Szerkesztve ]
-
jeges
senior tag
lehet, hogy van némi fogalomzavar: ajax
ha elolvasod, látod, hogy az ajaxnak része a javascript (ill. valamilyen kód, ami adatot küld és fogad kliensen), így a jq eszközei is egy lehetséges ajax-megoldást alkotnak a kliens-oldalon. a kérdés tehát nem úgy merül fel, hogy ajax vs jq, hanem inkább jq vs dojo vs akármilyen js függvénytár (esetleg függvénytár nélkül, vagy - ezért lehet, többen megköveznek - akár flash).
ugyanakkor azt is látni kell, hogy az ajax nem a látványelemet, hanem a működést jelenti, amelyet jq-ban többé-kevésbé a $.ajax, $.get, $.post, $.load eljárások valósítanak meg. azaz nem attól ajax, hogy hogy néz ki a kosár, hanem attól, hogy milyen eljárással küldi-fogadja a kosár tartalmát a szerver felé. -
jeges
senior tag
hja, a többihez:
fejlesztőeszköz ízlés dolga, a js-hez sztem pont nincs szükség semmilyen komoly eszközre, én pl most kate-et (is) használok. debug-ra meg bármelyik böngésző kiegészítője alkalmas, a "nagyokat" általában úgyis végig köll nézni, működik-e a cucc.
chrome-on egyébként shft+ctrl+i, operán "elem kivizsgálása" a helyi menüben, ill. dragonfly telepítése után érhetők el a megfelelő funkciók.
szerver oldali munkában sokkal nagyobb segítség valami "rendes" fejlesztőkörnyezet (eclipse, netbeans).
de hangsúlyozom, hogy ezek csupán személyes tapasztalatok, kinek-kinek ízlése szerint. -
jeges
senior tag
nem igazán. a .html() nagyjából a js (dom) innerHTML tulajdonság értékét (azaz szövegesen az elem tartalmát, akármi is az) adja vissza. ellentétben a .val()-lal, ami nagyjából a js (ill dom elem) .value-t adja vissza.
inputoknak általában value-ja van (kivéve textarea pl.), div-nek, li-nek, és hasonlóknak inkább innerHTML.
a pontos használat jquery dokumentációban fellelhető (google-ban jquery + html/val) -
jeges
senior tag
válasz Speeedfire #105 üzenetére
ez a téma szép, de ennyire nem egyszerű.
milyen típusú ellenőrzésekre gondolsz? mennyire hagysz szabad kezet a felhasználónak, hogy beállíthassa saját ellenőrzéseit?
a legegyszerűbb ellenőrzés pl a kitöltöttség, de ennél jóval bonyolultabbakat is el tudok képzelni:
- numerikus valóban numerikus-e (jellemzően regexp)
- numerikus nagyobb/kisebb egy megadott értéknél
- két numerikus input közül az egyik nagyobb a másiknál
- két dátum input közül az egyik nagyobb a másiknál
- szöveges input esetében valamilyen regexp ellenőrzés (pl név nem lehet rövidebb 3 karakternél, vagy legyen benne keresztnév és vezetéknév)szóval a megvalósítás nagyban függ attól, mi az elvárt működés, én személy szerint olyasmiben gondolkodnék, hogy a tárolt ellenőrzési szabályokat rekordonként egy tömbben vagy JSON objektumban tárolom, majd definiálok egy check vagy hasonló nevű osztályt/függvényt, és a megadott tömbön végiggyalogolva minden rekordra meghívom. ez a függvény aztán eldönti a megadott tömb alapján, hogy mit fog csinálni (regexp, numerikus összehasonlítás, dátumok összehasonlítása, stb)
-
jeges
senior tag
válasz Speeedfire #112 üzenetére
egy lehetséges megoldás:
html:
<!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>
<style type="text/css">
#fm {width:500px;display:block;float:left;margin:0; padding:0;}
#fm label, #fm input {display:inline;float:left;position:relative;margin:0 0 5px 5px; padding:0;font:normal 12px Verdana;}
#fm label {width:200px; font-weight:700; text-align:right;}
#fm input {width:250px; text-align:left;}
#send {width:60px !important;font-weight:700 !important;text-align:center !important; margin-left:200px !important;}
#log {width:500px;height:100px;display:block;float:left;position:relative;}
</style>
<script src="rule.js" type="text/javascript"></script>
<script type="text/javascript">
myRule = {
first: {
sbj: "nm",
fnc: "nn",
prm: "",
msg: "A név kitöltése kötelező."
},
second: {
sbj: "yr",
fnc: "gt",
prm: 18,
msg: "Csak 18 év felett."
},
third: {
sbj: "yr",
fnc: "lt",
prm: 99,
msg: "Csak 99 év alatt."
},
fifth: {
sbj: "cn",
fnc: "rg",
prm: ["^hu","i"],
msg: "Csak magyar állampolgárok számára."
},
fourth: {
sbj: "cn",
fnc: "nn",
prm: "",
msg: "Az állampolgárság kitöltése kötelező."
}
}
window.onload = function(){
var sn = document.getElementById("send");
var fm = document.getElementById("fm");
var lg = document.getElementById("log");
sn.onclick = function(){
lg.innerHTML = "";
var fc = new formChecker(fm,myRule);
lg.innerHTML += "out: " + fc.out();
}
}
</script>
</head>
<body>
<form id="fm" name="fm" method="post">
<label for="nm">Name</label><input type="text" name="nm" id="nm" class="nm" value="name" />
<label for="yr">Age</label><input type="text" name="yr" id="yr" class="yr" value="age (years)" />
<label for="cn">Country</label><input type="text" name="cn" id="cn" class="cn" value="country (short, i.e. hu or en)" />
<input type="button" name="send" id="send" value="send" />
</form>
<br>
<div id="log"></log>
</body>
</html>js: (html-ben rule.js-ként hivatkozva)
function gotClass(obj,cl) {
var r = new RegExp("\\b" + cl + "\\b", "i");
var ob = ( typeof(obj) == "object" ) ? obj : $lm(obj);
if ( ob && ob.className && ob.className.match(r) !== null ) return true;
return false;
}
function firstChildofClass(p,cl) {
if (!p || !p.childNodes.length)return;
var ch = p.childNodes;
for ( var i = 0; i < ch.length; i++ ){
if (gotClass(ch[i],cl))return ch[i];
}
return;
}
function $fc(p, cl){
return firstChildofClass(p,cl);
}
function formChecker(fm,rule){
if (!fm) return;
this.fm = fm;
this.rule = rule;
this.res = [];
this.chk = function(){
var r;
for (var i in this.rule){
r = this.rule[i];
if ($fc(this.fm,r.sbj)){
var val = ruleCheck( $fc(this.fm,r.sbj) , r.fnc , r.prm );
if (!val) val = r.msg;
else val = "ok";
document.getElementById("log").innerHTML += "<br>val: " + val;
this.res.push(val);
}
}
}
// output
this.out = function(){
if (this.res.length < 1)this.chk();
var s = "";
for(var i = 0; i < this.res.length; i++ ){
if(this.res[i] != true)s += this.res[i] + "<br>";
}
return s;
}
}
function chk(obj){
this.v = (obj.value) ? obj.value : obj.innerHTML;
this.eq = function(b){
if (this.v == b)return true;
return false;
}
this.lt = function(b){
if (this.v < parseFloat(b))return true;
return false;
}
this.le = function(b){
if (this.v <= parseFloat(b))return true;
return false;
}
this.gt = function(b){
if (this.v > parseFloat(b))return true;
return false;
}
this.ge = function(b){
if (this.v >= parseFloat(b))return true;
return false;
}
this.nn = function(){
if (this.v.toString().length > 0)return true;
return false;
}
this.rg = function(b){
var bb = new RegExp(b[0],b[1]);
return bb.test(this.v);
}
this.exec = function(f, arg) {
var args;
return this[f](arg);
}
}
function ruleCheck(obj,f,prm){
if (!obj)return;
var c = new chk(obj);
return c.exec(f,prm);
}nem állítom, hogy tökéletes, de nagyjából működik
szabályokat json formában várja (ahogy a html-ben látszik)
az ellenőrző függvények persze bővíthetők, most csak néhányat írtam beleha kérdés merül fel, szólj
sry, jq-ban is lehetne, de nem akartam, mer' azér' a néhány getElementById-ért felesleges.
-
jeges
senior tag
javított, kiegészített kód: formChecker
-
jeges
senior tag
válasz Speeedfire #117 üzenetére
én szóltam, hogy nem annyira egyszerű
de legalább működik -
jeges
senior tag
válasz Speeedfire #117 üzenetére
kis segítség:
átírtam úgy, hogy az egyes ellenőrzések futtatása után az eredménytől függően végrehajtandó eljárásokat könnyebb legyen definiálni
(a példába egy egyszerű className-játékot és title-ban megjelenő hibaüzit tettem) -
jeges
senior tag
válasz Brown ügynök #120 üzenetére
nem teljesen világos: partner20 lesz az új elem id-je vagy ő maga a div, ami megjelenik? előbbi esetben macskaköröm közé tenném, utóbbi esetben viszont inline kód helyett inkább head-ben definiálnám az onclick-et.
-
jeges
senior tag
válasz Speeedfire #121 üzenetére
nem a színezés a lényeg, hanem hogy külön lehet definiálni, mit csináljon a cucc, ha sikeres a teszt vagy nem. az eljárások paraméterként megkapják a vizsgált elemet és a json-ban előre definiált (hiba)szöveget, ezzel azt csinálsz, amit akarsz. mindenesetre ha furcsállod a színezést, azér' nézd meg az elemek title-jét ellenőrzés után.
-
jeges
senior tag
válasz Brown ügynök #127 üzenetére
ezek szerint ezt már próbáltad?
<select onchange="changePartner1(this, 'partner20', 'partner30' );" > -
jeges
senior tag
válasz Brown ügynök #130 üzenetére
nos igen, itt sztem meggondolandó, hogy ne inline .onclick-et használj
-
jeges
senior tag
válasz Brown ügynök #132 üzenetére
egyébként oda is lehet, de ha jól értem, most erre nincs szükség, hiszen ajax hívással operálsz. úgy értem
<head><script type="text/javascript">obj.onclick = function(){}</script></head>
ehelyett:
<body><div onclick=""></div></body>előbbi esetben sokkal könnyebb követni a változókat szerintem, és könnyebb kihasználni az egymásba ágyazhatóság előnyeit is.
-
jeges
senior tag
válasz Brown ügynök #134 üzenetére
function foo(){
var s = 1;
bar = function(){ return s+1; }
s = bar();
return s;
}
ha meghívod foo()-t, az 2-t fog visszaadni, mert a bar() tudja, hogy s = 1, ehhez ad hozzá még egyet. ugyanezt megteheted az onchange, onclick eseményekkel is, mivel azok is csak függvények. csak arra kell vigyázni, hogy a this mást fog jelenteni, a "kívül" definiált változók belül is használhatók.
szerk: a fenti mintájára pl.
function valami(){
var span2 = document.createElement("div");
span2.id = "span2";
document.body.appendChild(span2);var lm = document.getElementById("elemem");
lm.onclick = function(){
document.body.removeChild(span2);
}}
lm.onclick tudni fogja, mit értesz span2 alatt, mivel azt "kívül" definiáltad már.
[ Szerkesztve ]
-
jeges
senior tag
válasz Speeedfire #143 üzenetére
$('#hirnev').css('border', '1px solid red');
upsz, lehet, ez nem megy.
helyette:$('#hirnev').css('borderStyle', 'solid');
$('#hirnev').css('borderColor', 'red');
$('#hirnev').css('borderWidth', '1px');[ Szerkesztve ]
-
jeges
senior tag
válasz Speeedfire #146 üzenetére
ha jól értem a kérdést, az esemény-kezelésre vagy kiváncsi. jq-ban több lehetőség is van. egy a sok közül:
$('.tbox').bind('focus',function(){
<code>
});
$('.tbox').bind('blur',function(){
<code>
});(csak arra kell vigyázni, hogy ezek a függvények módosítják a környezetet, azaz függvényen belül a 'this' már a $('.tbox')-ra fog mutatni)
-
jeges
senior tag
válasz Speeedfire #147 üzenetére
nem kell, erre találták ki az event delegation-t
például:
$(document).bind('mouseup',function(e){
// event object
if(!e)e=window.event;//event target
var t = e.eventTarget || e.srcElement;//code
// itt t már az az elem, amelyen a mouseup történt});
a lényeg az lenne, hogy a document is érzékeli az összes elemen történt eseményt, ezért csak egy listener-t regisztrálsz őrajta, ami a fenti módon képes megállapítani, melyik elemen történt az esemény. innen már nem kell minden input-hoz külön eljárást írni, csak egyet a közös szülőjükre.
[ Szerkesztve ]
-
jeges
senior tag
válasz Peter Kiss #151 üzenetére
a magam részéről kicsit általánosabban a bubbling kihasználását értem alatta, azaz hogy nem a célelemen fogom meg az eseményt, hanem a szülőjén. ettől lesz kezelhetőbb, gyorsabb az egész (pl. egy néhányszáz soros rácson ha minden cellára listenert raksz, az baromi lassú, míg egyetlen listenerrel a tábla elemen ugyanaz a hatás elérhető).
szerk: most, h előkerült utánanéztem, és valóban a jq-sok megkülönböztetik a rebinding-et a delegation-től, ahgy Te is írtad.
[ Szerkesztve ]
-
jeges
senior tag
válasz Peter Kiss #153 üzenetére
erre jó bármelyik másik eseménykezelő eljárás is. ha jq nélkül, simán js-ben definiálsz egy .onclick függvényt, az is el fogja kapni az elem gyerekeinek a click-jeit (hacsak nem akadályozod meg külön a programkódban). erre az "elkapásra" írtam fent példát.
-
jeges
senior tag
válasz Brown ügynök #155 üzenetére
-
jeges
senior tag
válasz Speeedfire #159 üzenetére
nem merültem el nagyon a kódban, de számomra legalábbis meglepő az a megoldás, hogy a menüsoron minden li elemnek saját ul-ja van. biztos, hogy ez volt az elképzelés? első blikkre azt gondolnám, egy legördülő menünek egy ul-ban vannak li tagjai, és az almenük ezeken belül további ul, ill li tagok szoktak lenni. nagyjából így:
<ul>
<li><a></a></li>
<li><a></a></li>
<li><a></a></li>
</ul>persze lehet, hogy én néztem el valamit.
a fenti ul-ok egyébként is valami miatt 0*0 pixelesek, ez sem biztos, hogy így kóser, de csak találgatok.
ennél mindenesetre láttam már egyszerűbb megoldást, számomra fura ez a plusz li tag beszúrás, mer' úgy tűnik, feleslegesen piszkálja a program a dom-ot.
-
jeges
senior tag
válasz Speeedfire #165 üzenetére
hja, látom.
az viszont esetleg lehet válasz az elcsúszásra, hogy a te tesztoldaladon minden li a sor elején van, az eredetiben pedig sorban egymás után. a float:left hiányzik nálad, ettől sorakoznak fel egymás mellé a li tag-ek.(azt továbbra sem értem, mi szükség erre a rengeteg ul-ra.)
-
jeges
senior tag
válasz Speeedfire #167 üzenetére
én azt mondom, minél egyszerűbb, annál jobb. ha már működik, lehet vele figurázni (fent már írt hasonlót valaki). ez pl egyszerű de nagyszerű, nem köll hozzá js se, csak css. és ha működni fog, még mindig slide-olhatod a megfelelő elemeket.
-
jeges
senior tag
válasz Brown ügynök #169 üzenetére
milyen adatbázis? mennyire vannak a kezedben a beállítások?
(csak zárójelben: ez valami migrációs probléma?) -
jeges
senior tag
válasz Peter Kiss #177 üzenetére
ill még egy kieg:
sablonnev (csak számomra?) nem egyértelmű, h maga az input vagy egy változó. a válasz ill a felépítés függvényében kellhet elé a megfelelő kijelölő jel (# vagy .) -
jeges
senior tag
válasz Brown ügynök #180 üzenetére
"hogyha mégsem választ ki egy sablonnevet, a begépelt szöveg ne tűnjön el a sablonnév inputból."
ha jól értem, a sablonnev inputot nem üríti a korábban írt kódrészleted, csak a template-et.
mindegy, sztem ez a három lehetőség van alapvetően:
1) ha a sablonnev változót vizsgálod:
if(sablonnev != undefined && sablonnev != "")$('#template').val(sablonnev);
2) ha a sablonnev id-jű inputot akarod vizsgálni:
if($('#sablonnev').val() != "")$('#template').val( $('#sablonnev').val() );
3) ha a sablonnev változóban tárolt id-jű inputot vizsgálod:
if($('#' + sablonnev).val() != "")$('#template').val( $('#' + sablonnev).val() );
-
jeges
senior tag
mi okozza a problémát az eltüntetésben? logikailag a már megírt algoritmus használható némi kiegészítéssel:
var proid = $(this).attr("id").split("-");
var id2hide = ( (proid[1] * 1) == 1 ) ? 0 : 1;
var id2show = 1 * proid[1];ahogy megjeleníted a két elemet, úgy a másik kettőt el is tudod tüntetni.
-
jeges
senior tag
nos, nem véletlen, h visszakérdeztem, mer' nem volt egyértelmű, mi okozza a problémát. a kód egyébként bizonyosan tudni fogja, hogy nyitva van-e, ha megkérdezed tőle. pl:
$(".help").each(function(){
if($this.css("display") != "none"){ ... }
});vagy (ha pl nem szereted az .each() -t) hover-re adsz az elemnek egy "hover" (vagy akármilyen) class-t, és azt használod
$(".help").bind("mouseover",function(){ $(this).addClass("hover"); });
$(".help").bind("mouseout",function(){ $(this).removeClass("hover"); });így a fenti helyett:
$(".help").not(".hover").prev().css("display","none"); -
jeges
senior tag
1 a hide() utáni 2 sor szinte biztos felesleges. ha hide-olod az elemet, utána sztem nem kell slidedown+slideup
2 az kavarhat még be, h else ágon van a slidedown+slideup. else helyett az .each utánra tenném, mert csak egyszer akarod végrehajtani.összefoglalva az .each-be csak a hide kell sztem, az eredeti slide-ok az each után külön egyszer végrehajtva.
-
jeges
senior tag
erre megoldás amit fent írtam: katt-ra adsz egy spec class-t a kinyitott elemnek, és azt vizsgálod. id-t is lehet, de a class valamivel rugalmasabb, kevésbé csúf, ha mondjuk törlöd, mint id esetében.
szerk: nézegettem is a kódot, hogy vajon mi az a h változó a névtelen függvényben
[ Szerkesztve ]
Új hozzászólás Aktív témák
Hirdetés
- Sarkköri terepbe olvadó kabátot öltött a Gigabyte Mini-ITX-es AMD alaplapja
- Motoros topic
- PlayStation 5 Pro teszt
- Elektromos autók - motorok
- ASUS routerek
- Hálózati / IP kamera
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Azonnali fáradt gőzös kérdések órája
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Androidos tablet topic
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest