- VR topik (Oculus Rift, stb.)
- OLED TV topic
- Vezeték nélküli fülhallgatók
- HiFi műszaki szemmel - sztereó hangrendszerek
- Fujifilm X
- AMD Radeon™ RX 470 / 480 és RX 570 / 580 / 590
- Milyen notebookot vegyek?
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
Hirdetés
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
A személyre szabott reklám lehet a streaming következő slágere
it A jobb célzott hirdetések érdekében adatplatformot indít a Warner Bros Discovery.
-
Érkezőben a Poco M6 4G
ma 5G-s és 4G-s Pro modell már van, hamarosan lesz Poco M6 4G-s alapváltozat is.
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
-
Lacces
őstag
Most jött el az a pillanat, hogy felgyújtanám azt a könyvet amiből tanulok....
Most ismét elindítottam azt a sz*os weblapot, és ment az animate, kinagyította semmit sem írtam át... ment!
Erre meg az explode nem megy... eszem megáll... nem értem... ha meg a legújabb jquery-ui-t teszem be, akkor meg meghal...
[link] itt a példa. Itt nem megy az animate, gépemre letöltve, megy... viszont az effect nem megy... nem értem. Ez nem determesztikus működés már...
effect a leírása jqueryui.com-on található meg!
Megvan az összefüggés:
Ha egyszer a html-ben a jquery forrás linkját átírom a legújabb 1.8.14-re, akkor működik az animate! viszont az effect() az explode, nem megy végre. De ha visszírom is 1.7.xxx-re akkor úgyanúgy "bent ragadhat valahogy a kód", mert onnantól kezdve az effect() ismét nem működik, csak az animate()...
Ha visszont nem piszkálom meg az eredeti 1.7.xxx-t akkor az marad érvényben. És csak az effect() működik
Próbáltam úgy is, hogy a Chrome-nak a gyorsító tárát töröltem, de akkor sincs változás az 1.8.14-ről... Valamiért ha egyszer beírom oda a legújabbat, akkor az nyista... nem műxik többé.
Amúgy kipróbáltam az 1.7.xxx jquery ui-val, amit te mondtad, hogy toggleClass()-t átállítottam true-ra és akkor ment!
Érdekes, hogy a legújabbal megy a toggleClass() , hogy ha true helyett a sebességet adom meg, de az explode() már nem.
Köszönöm a segítséget!
-
Lacces
őstag
Aham próbálgatom itt a példát, és közben értelmeztem amit te mondtál melléje, így értem. Ha tényleg csak véletlenül kattintott oda, és akkor közben kijelöli a rádiógombot és tovább halad az űrlap kitöltésével, akkor az marad kijelölve. (Például felette már kijelölt egy rádiógombot csak véletlenül, abba a szövegmezőbe is belekattint és akkor annak a rádigombját jelöli ki a jQuery). Köszönöm!
-
Brown ügynök
senior tag
Oké, most már látom kb. hogy kellene, megfogalmazom pontosabban a problémát: Az adatbázisból visszatérünk egy értékkel és ezzel az értékkel rendelkező option-t választjuk ki.
Tehát valahogy ezzel az értékkel rendelkező <option>-t kellene kiválasztani."hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
Újabb probléma. Ez a fv. addig jó, míg nincs két ua. értékkel ellátott option, természetesen külön selectben. Olyan megoldás kellene amivel az option class-ra vagy name-re tudnék hivatkozni azután megvizsgálni az értéket. Ezzel próbálkoztam, each() nélkül:
if($('option[name=" tcs"]').val() == tcs )$(this).attr("selected", "selected");
if($('option[class=" tcs"]').val() == tcs )$(this).attr("selected", "selected");Ennek nem kéne működnie?
"hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
Igen, a (this) volt a ludas. Tehát helyesen:
if($('option[name=" tcs"]').val() == tcs )$('option[name="tcs"]').attr("selected", "selected");
vagy egyszerűbben, ha ismert az option értéke (ezt tároljuk a tcs-ben):
if($('option[value="'+ tcs +'"]').val() == tcs )$('option[value="'+ tcs +'"]').attr("selected", "selected");Az each() fv. nél csak attribútumot lehet megadni, (ahogy itt olvastam : [link] ) nem lehet így megadni pl. $('option.class').each()
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
Nem írják, ezzel próbáltam és nem működött: $('option.class').each()
Közben rájöttem, hogy ez (lásd lent) ua. csinálja mintha each()-tem volna: érték alapján választja ki az option-t (ami akkor nem jó ha több uo. értékű option van az oldalon)
if($('option[value="'+ tcs +'"]').val() == tcs )$('option[value="'+ tcs +'"]').attr("selected", "selected");
Szóval, hogy alakítsam át ezt hogy az option osztályt is bevegyen a feltételbe?
var val = <keresett érték>;
$("option").each(function(){
if( $(this).val() == val )$(this).attr("selected", "selected");
else $(this).removeAttr("selected");
});"hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
Működik! Szép munka volt!
var tcs = termekcsoport; //option értéke
$("#termekcsoport").children("option").each(function(){
if( $(this).val() == tcs )$(this).attr("selected", "selected");
else $(this).removeAttr("selected");
});"hacsak nem jön a jó tündér break utasítás képében..."
-
Speeedfire
nagyúr
milyen típusú ellenőrzésekre gondolsz? mennyire hagysz szabad kezet a felhasználónak, hogy beállíthassa saját ellenőrzéseit?
Konkrétan egy linkkatalógusom van és oda akarok 1-2 dolgot.
pl
-a textarea-ba min. 300 karakter kell
-minden mező legyen kitöltve
-ha a textarea-ban van egy adott kifejezés akkor error (itt valami tömbben lenne felsorolva pár adat)Nagyjából ennyi lenne, illetve ezeket már tudnám kombinálni is. Nem akarom, hogy a felhasználó módosítsa, de gondolom elég lenne ide egy js kódolás, nem kellene rejteni. Bár nem hiszem, hogy sokan módosítanák a html-ben ezt.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
jeges
senior tag
javított, kiegészített kód: formChecker
-
Speeedfire
nagyúr
Délután lesz egy kis időm és átnézem az egészet, de ennyiből már boldogulok szerintem!
Tapsi: Igen, csak én kliens oldalon már nem akarok a biztonsággal bajlódni. Ha át is írja a js kódot, akkor is véd a php engem.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Brown ügynök
senior tag
Az előző válaszomban láthatod, hogy az egy változó érték: span2 helyén span2id, span3 = span3id értékét adom át.
Amikor új partnert szeretnék felvinni akkor létrejön 3 span: partner10, partner20, partner30. Ebben a 3 span-ben van 3 legördülő menücske . Amikor az első legördülőből választottam, végrehajtódik egy adatbázis lekérdezés és a visszatérő eredményt a partner20 span-en belül, egy legördülő menübe tölti.
Azért kell változó érték mert egyszerre több partnert is hozzáadhatnak és ekkor a span-k id-je változik: partner11, partner21, partner31,
partner12, partner22, partner32 stb.[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
Ez már tetszene az FF-nek, de a változó nevem mindig más lenne, nem úgy mint eddig:
function changePartner1(partner1, span2, span3) {
var $selected = $(partner1).val();
var $url = $('input#searchAjaxPartner2').val();
var $span2 = $(span2).attr('id');
var $span3 = $(span3).attr('id');
$.post($url, {partner1: $selected, span2: $span2, span3: $span3},
function(data){
if(data.length > 0) {
$(span2).html(data);
}
});
}A span2, span3 be lehet állítani változó nevűre... de az sem jó.
Pontosítok: Ekkor nem adódik át a span2-be span3 -ba a partner20, partner30
[ Szerkesztve ]
"hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
No jól van, de egyszerre több onclick-em is lehet. Itt azzal van a baj, hogy azt hiszi az FF hogy ami az onclicken beül van (changePartner1(this, span2, span3) azok fv., pedig csak változó(nevek). IE, meg Crome pedig tudja
"hacsak nem jön a jó tündér break utasítás képében..."
-
Brown ügynök
senior tag
Úgy oldottam meg, hogy a 3 menüt befoglaló div id-jét adom tovább és abból képzem le a partner id-ket.
<div id="0">
<span id="partner10">
<span id="partner20">
<span id="partner30">
function changePartner1(partner1, id) {
var $selected = $(partner1).val();
var $id = id;
var $url = $('input#searchAjaxPartner2').val();
var $span2 = 'partner2'+ $id +'';
var $span3 = 'partner3'+ $id +'';
$.post($url, {partner1: $selected, span2: $span2, span3: $span3},
function(data){
if(data.length > 0) {
$(span2).html(data);
}
});
}Most már csak azt kell megoldanom, hogy meg is jelenjen. A $(span2).html(data);- val lesz a gond
"hacsak nem jön a jó tündér break utasítás képében..."
-
Speeedfire
nagyúr
Így már tényleg jó a kód.
$(document).ready(function()
{
$(".hiremail").focus(function ()
{
var t= $(this);
t.attr('value',t.attr('value').replace('email cím...',''));
t.css('color', '#000');
t.css('border-color', 'green');
});
$(".hiremail").blur(function ()
{
var t= $(this);
if (t.val() == ''){
t.val('email cím...');
}
t.css('color', '#777');
t.css('border-color', '#EEE');
});
});Ezt az event delegation-t megnézem még. Igazából csak az értékek változnak, a színek már nem, illetve természetesen változik még a vizsgált elem.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
A .bind() nem delegál eseményt, csak a .live() és a .delegate() tudja ezt, legalábbis az én értelmezésemben. Delegálni akkor szoktunk, mikor még nem érhető el az adott elem a contextben. Azt is hozzátenném, hogy a .click() és hasonlók helyett érdemesebb a .live()-ot használni (ha lehet [pl. traversal metódusokat nem lehet használni arra, hogy elemeket keressünk a .live()-nak]), mert gyorsabb, viszont a .live() helyett meg jobb a .delegate() szintén a sebesség miatt, csak utóbbit néha körülményes használni.
---
SpeeedfireSzerintem ez a kód azt csinálja, mint a tiéd, csak rövidebben és gyorsabban.
$(document).ready(function() {
$(".hiremail").focus(function () {
$(this).val('').css('color', '#000').css('border-color', 'green');
})
.blur(function () {
var t = $(this);
if (t.val() == ''){
t.val('email cím...');
}
t.css('color', '#777').css('border-color', '#EEE');
});
});[ Szerkesztve ]
-
-
Speeedfire
nagyúr
-
-
-
szmegma
aktív tag
Elkeszitettem de most meg jobban osszegabalyodott a cucc.
[ Szerkesztve ]
TV: JZ1000
-
szmegma
aktív tag
Ezzel ugyan ugy nem mukodik es igy problema jelenik meg:
mondjuk nyitott a 4. box es kinyitom a 7. boxot akkor a 4. box nem tunik el.Szerintem valtozoba kellene tenni a nyitott box ID-jet es azt osszehasonlitani a kattintott ID-vel, nem?
Probaltam a h != id de a h nem a nyitott box ID-jet tartalmazza, igy az if<>else ag is ertelmetlen.[ Szerkesztve ]
TV: JZ1000
-
szmegma
aktív tag
Amit irsz az tiszta es ertem.
El is keszitem igy a kodot:<script type="text/javascript">
$(document).ready(function() {
var yOffset = 15;
var xOffset = -23;
$(".dt").hide();
$(".help").click(function(e){
var preid = $(this).attr("id");
var proid = preid.split('-');
var id = proid[1];
$(".dt").each(function(){
var postid = $(this).attr("id");
if(preid != postid){
$(".dt").hide();
//alert(postid+"|"+preid);
}
else{
return false;
}
});
$("#f"+id).css("top", "12px").css("left", "-9px").css("position", "absolute").css("z-index", "9999");
$("#i-"+id).css("top", (e.pageY + xOffset)+"px").css("left", (e.pageX + yOffset)+"px").slideDown("slow").delay(2000).slideUp("slow");
});
});</script>Megsem mukodik. Szerintem a $("#f"+id).css("top", "12px").css("left", "-9px").css("position", "absolute").css("z-index", "9999");
$("#i-"+id).css("top", (e.pageY + xOffset)+"px").css("left", (e.pageX + yOffset)+"px").slideDown("slow").delay(2000).slideUp("slow"); resz a baja, hogy nem az each function-on belul van es miutan az lefutott ezek mindenkeppen lefutnak attol fuggetlenul, hogy mi jott vissza az each-bol.
Tevedek?[ Szerkesztve ]
TV: JZ1000
-
szmegma
aktív tag
if(preid != postid){
$(".dt").hide();
//alert(postid+"|"+preid);
}Akarmire kattintok preid SOHA nem lesz egyenlo postid-vel mivel a slide resz az elsebe kerult. Ahhoz, hogy az else ag igaz legyen legalabb egyszer igaznak kellene lennie az else agnak... odogi korbe tettem a kodot...
Abszolut elvesztettem a fonalat.[ Szerkesztve ]
TV: JZ1000
-
szmegma
aktív tag
<script type="text/javascript">
$(document).ready(function() {
var yOffset = 15;
var xOffset = -23;
$(".dt").hide();
$(".help").click(function(e){
var id = $(this).attr("id").split("-")[1];
$(".dt").each(function(){
var _id = $(this).attr("id").split("-")[1];
if(id != _id){
$(".dt").hide();
//alert(_id+"<>"+id);
}
else{
//alert(_id+"|"+id);
if ($(this).css("display") == "none"){
$("#f"+id).css("top", "12px").css("left", "-9px").css("position", "absolute").css("z-index", "9999");
$("#i-"+id).css("top", (e.pageY + xOffset)+"px").css("left", (e.pageX + yOffset)+"px").slideDown("slow").delay(2000).slideUp("slow");
}
return false;
}
});
});
});</script>Igy nez ki jelenleg es csak azert sem mukodik.
Viszont vmit eszre vettem. MOndjuk kattintok a 3. kerdojelre, ekkor 3 alert ugrik fel:0<>2
1<>2
2|2Ha megnezed a koztuk levo separatort lathatod, hogy az elso 2 alert az if(){ alert(_id+"<>"+id); } reszbol ugrik elo, az utolso alert pedig az else{ alert(_id+"|"+id); } reszbol ugrik elo.
Ekkor ha ujbol kattintok a 3. kerdojlere (meg nyitva van a box) csak megismetli a 3 alert-et ugyanazzal a tartalommal, majd eltunteti a boxot (SIKERULT) am ujbol futtatja a slideDown("slow").delay(2000).slideUp("slow") reszt is igy megint lenyilik a box es a delay() pedig osszecsukja (NINCS SIKER).
Nem ertem miert fut le az IF es ELSE ag is...
[ Szerkesztve ]
TV: JZ1000
-
szmegma
aktív tag
Na kicsit belemelyedtem es az each es addclass reszt egybegyurtam:
Itt ha megnezed es kiprobalod, akkor mar eleg jol elkuloniti az IF ELSE, hogy melyik ID lett kattintva es annak milyen a statusza illetve a tobbi ID-nek milyen a stausza.
Ebben az elagazasban nem lehet vhogy megjeleniteni amit szeretnek?
TV: JZ1000
-
szmegma
aktív tag
Vissza pakoltam a display es id == _id ellenorzest mert tenyleg az hianyzott.
Mostmar 99%-ban ugy mukodik, ahogy kell viszont van egy ici pici problema:
Amikor mondjuk kattintasz a 3. kerdojelre es megjelenik a 3. box tartalma:
1, nem kattintasz sehova szepen becsukodik magatol ahogy kell
2, kattintasz egy masik ID-ju kerdojelre szepen eltunteti az elozo nyitottat
3, ha a nyitott box kerdojelere kattintasz akkor mint a log is mutatja jobb szelen megvaltozik a display NONE-rol BLOCK-ra, am megsem az IF agban levo kod fut le.
direkt beallitottam fadeOut()-ra az IF agban levo eltuntetest, hogy lathato legyen az effekt.Ezt a hibat nem hinnem, hogy a delay() okozza.
Ha igen, akkor aruld mar el legy szives, hogyan lehetne azzal a setTimeout cuccal eltuntetni a delay() helyett?TV: JZ1000
-
szmegma
aktív tag
Ez lesz az, mar csak tudni kene pontosan, hogy hova kell mit raknom.
Szoval a clear() es delay() cuccokat kellene ugy elhelyezni, hogy amikor en zarom vissza a nyitott boxot, akkor a display erteket is allitsa be NONE-ra, mivel az marad BLOCK erteken, ezert ha ujra egy altalam bezart kerdojelre kattintok akkor annak display BLOCK ertekenek koszonhetoen megint az IF ag fut le es nem az ELSE.
Celegyenesben vagyunk...otlet?
TV: JZ1000
-
szmegma
aktív tag
Nem, nem. Probald csak ki ebben a sorrendben:
1, kattints a 3. kerdojelre
2, mielott becsukodna a 3. box kattints az 5. kerdojelre
(A 3. boxot nem az IF vagy ELSE agban levo eltunteto kod tunteti el, hanem ez => $("dt").css("visibility", "hidden"); ami kozvetlen a click utan fut le)3, mielott becsukodna az 5. box kattints megint a 3. kerdojelre
Ekkor lathatod, hogy az 3. box nem kinyitodik ahogy kellene, hanem eppen csak megjelenik es mar el is tunik vagyis az IF agban levo $("dt").slideUp("slow"); tunteti el ami helyes hiszen a display erteke BLOCK maradt, mivel a $("dt").css("visibility", "hidden"); resz tuntette el.
Magyarul vhogy NONE-ra kellene allitani az display erteket annak a boxnak amit $("dt").css("visibility", "hidden"); resz tuntet el.
Gondoltam, hogy hat ez pofon egyszeru: $("dt").css("display", "none"); reszre kell lecserelni, de NEM!
TV: JZ1000
-
Speeedfire
nagyúr
Az elvárt működés annyi lenne, hogy van pl 3000 email cím egy táblában. Admin felületen megírom a formban a levél törzsét majd rányomok a küldésre. Ekkor az ajax meghívja a kuld.php fájlt ami 50-esével elküldi a levelet. Lekérdez 50 email címet, megcsinálja, majd a következő 50-et és így tovább, amíg el nem fogynak az email címek.
Közben az admin felületen majd jelzi egy kis számláló, hogy a 3000-ból x van elküldve már. Ha 3000/3000 lesz a vége akkor meg szépen kiírja, hogy vége.
Azért van erre szükség, mert ha nagyon sok email cím van akkor a php egy idő után megakar időtúllépés miatt. Sok tárhelynél meg nincs cron se.
martonx: Lehet progress bar is, de az már csak hab lenne a tortán.
Azért akarom, hogy a js is tudja az i értékét, hogy amikor ismét meghívja az elkuld.php oldalt akkor már a paramban nem i=0 legyen hanem i+50 és így tovább. Szóval folyamatosan változna az i értéke. Agyaltam, hogy megoldani session-nel, de utána gondolkoztam, hogy valami más megoldás is biztos van erre.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Speeedfire
nagyúr
jeges & martonx: Na ez így elsőre még bonyolúltabb, mint gondoltam. Pénteken lesz rá időm, szerintem akkor jobban belevetem magam a dologba.
Csak az a kérdés, hogy hogyan csinálom azt, hogy a php visszaküld egy jelet egy adott divbe?
Az hittem egyszerűbb lesz, valami subrutinnal mindig meghívja majd magát az ajax függvény és a param értékét megváltoztatja.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
Új hozzászólás Aktív témák
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5
- Bomba ár! HP EliteBook 830 G6 - i7-8G I 8GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Dell Latitude 5580 - i5-G6 I 8-16GB I 256 SSD I 15,6" FHD I HDMI I CAM I W10 I Garancia
- Bomba ár! Dell Latitude 5490 Touch - i5-8G I 8GB I 256SSD I 14" FHD Touch I Cam I W11 I Garancia!