- iPhone topik
- Huawei Watch GT 4 - kerek karék
- Yettel topik
- Xiaomi 12 - az izmos 12
- Apple iPhone 14 Pro Max - sziget fesztivál
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Poco X6 Pro - ötös alá
- Bemutatkozott a Polestar Phone
- Xiaomi Mi 11 Ultra - Circus Maximus
Hirdetés
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Premier előzetesen a Wrath: Aeon of Ruin konzolos változatai
gp A PC-s változat után a minap PlayStationre, Xbox-ra és Switch-re is elérhető lett a program.
-
É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.
-
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
-
SirRasor
őstag
válasz Sk8erPeter #3749 üzenetére
Na így már világos a dolog; akkor viszont legalább +1 dolog, amihez majd érteni fogok
Közben végignéztem/megtanultam az AJAX oktatóanyagot és már működik is, amit meg akartam csinálni
Make Love not war!
-
The DJ
addikt
Megint jövök a hülye kérdéseimmel Van egy weboldal, Wordpress alapú, hangmintákat lehet rajta meghallgatni. Ez a megvásárolt sablon beépített funkciója. Minden működik, a terméklapon van egy gomb, kattintásra elindul a bal oldalsávban található lejátszó és játssza a hanganyagot.
Namármost...azt kellene megoldani, hogy ne kattintásra induljon el a lejátszás, hanem automatikusan a terméklapra érkezve. Tudom, hülye ötlet (nekem is ez volt az első reakcióm), de meg kell valósítani. A lejátszó, amit használnak egy módosított (?) jplayer. Erre már rájöttem. Van is a dokumentációjában szó az autoplay-ről, tehát még támogatja is. De akárhogy próbálom belehackelni nem megy. Megint kiütközik az, hogy se Javascript, se PHP nyelven nem "beszélek". Feltöltöttem pastebin-re az erre vonatkozó pár sort. Valaki lenne olyan kedves és áldozna rám az idejéből pár percet, hogy ránézzen? Köszönöm előre is!
Pastebin: [link]
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
The DJ
addikt
válasz martonx #3755 üzenetére
Ezt megtaláltam én is, próbálkozom másfél órája egyedül mindenféle módon, de nem sikerült a pastebin-es kódba beleapplikálni a dokumentációban látható részt.
Gondolom ezt a részt kellene szerkesztenem:
// Create click handlers for the different tracks
$(".demo-container .track").click(function(e) {
my_trackName.text($(this).text());
my_jPlayer.jPlayer("setMedia", {
mp3: $(this).attr("href")
});
if((opt_play_first && first_track) || (opt_auto_play && !first_track)) {
my_jPlayer.jPlayer("play");
}
first_track = true;
$(this).blur();
return false;
});Próbáltam így:
// Create click handlers for the different tracks
$(".demo-container .track").click(function(e) {
my_trackName.text($(this).text());
my_jPlayer.jPlayer("setMedia", {
mp3: $(this).attr("href")
}).jPlayer("play");
if((opt_play_first && first_track)) {
my_jPlayer.jPlayer("play");
}
first_track = true;
$(this).blur();
return false;
});De semmi. Én ehhez nagyon kevés vagyok sajnos.
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
Sk8erPeter
nagyúr
válasz martonx #3755 üzenetére
De elméletileg nagyon gyors rákukkantás alapján jónak kéne lennie a pastebines kód alapján, kiemelve a lényeget, közé pontokat téve:
var my_jPlayer = $("#jquery_jplayer"),
....
// Some options
var opt_play_first = true, // If true, will attempt to auto-play the default track on page loads. No effect on mobile devices, like iOS.
opt_auto_play = true, // If true, when a track is selected, it will auto-play.
opt_text_playing = "Now playing", // Text when playing
opt_text_selected = "Track selected"; // Text when not playing
....
// Instance jPlayer
my_jPlayer.jPlayer({
ready: function () {
$(".demo-container .track-default").click();
},
.....
});
$(".demo-container .track").click(function(e) {
...
my_jPlayer.jPlayer("setMedia", {
mp3: $(this).attr("href")
});
if((opt_play_first && first_track) || (opt_auto_play && !first_track)) {
my_jPlayer.jPlayer("play");
}
...
});Szerk.:
Ja, most, hogy egy kicsit gondolkodtam is, MIUTÁN leírtam mindezt , rájöttem, hogy ebből f@szság is kisülhet:
$(".demo-container .track-default").click();
azt sem tudjuk, hány elemet tartalmaz ez a .track-default, bár feltételezem, csak egyet.
Na de a franc tudja, hogy ez egyáltalán elindítja-e valóban a lejátszást.
Habár el kéne neki, na jó, nekem ehhez most túlságosan péntek este van.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Na, akkor próbálkozzunk.
Van ez a rész:
ready: function () {
$(".demo-container .track-default").click();
},ezt cseréld le erre:
ready: function () {
// $(".demo-container .track-default").click();
$(this).jPlayer("setMedia", {
mp3: $('.demo-container .track:first-child').attr("href")
}).jPlayer("play"); // Attempt to auto play the media
},most ezt csak úgy gyorsan összekalapáltam, szóval nem garantálok semmit, amúgy is csak tesztelés erejéig kéne kipróbálni.
Szerk.:
persze a legjobb lenne élőben látni az oldalt...[ Szerkesztve ]
Sk8erPeter
-
The DJ
addikt
válasz Sk8erPeter #3758 üzenetére
Köszönöm!
Kicseréltem, de nincs változás. Ugyanúgy kattintásra indul a sample. Az oldalt is meg tudom mutatni, nem titok. Erről lenne szó: [link] Ez itt épp egy terméklap. A sample gomb ott van a kiskép alatt, arra kattintva indul el a bal oldalon a lejátszó. Az lenne a cél hogy minden terméklap megnyitásakor automatikusan elinduljon ez a sample. Természetesen ebből mindig csak egy darab van.
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
Sk8erPeter
nagyúr
Most egyben sikerült jól elcseszerintened a kódot valami módosítással
Pl.:
//]]>
</script>ehelyett ez kéne, hogy legyen:
//]]>
</script>(ami zárja a legvégén ezt: //<![CDATA[)
aztán ezt is elcseszerintetted:
$(".demo-container .track")ready: function() {
miért lett ebből ready, és akkor már miért nincs ott előtte egy pont?
Egyáltalán ezt minek változtattad?Szóval ezeket javítsd, mert így nehéz tesztelni.
Sk8erPeter
-
The DJ
addikt
válasz Sk8erPeter #3760 üzenetére
A CDATA zárót a Wordpress rontja el. A kódban tökéletesen szerepel, bár szerintem ez nem okoz problémát.
A másik tényleg az én próbálkozásom egyik maradványa, azt javítottam (azaz visszatettem az eredetit).
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
Sk8erPeter
nagyúr
"A CDATA zárót a Wordpress rontja el."
Így, hogy elrontja, legalább rávilágít, hogy nem jól csinálod
Külső JS-fájlba érdemes pakolni az ilyesmit, pluginnel behúzni, stb., nem tudom, mi ennek a szabályos módja WordPress-ben (már beszéltünk a Weblapkészítés topicban a plugin/modul/komponens készítésének előnyeiről a gányolás-tákolás-taknyolás kombó helyett), de az ilyen inline kód amúgy sem gyorsítótárazható a böngésző által, nehézkes karbantartani, és így tovább.Na, de lépjünk az érdemi részre, most látom, hogy eleve el van rontva a zárójelezés, érdemes ilyenkor para esetén megnyitni a konzolt Ctrl+Shift+I-vel vagy F12-vel, aztán rákattintani a Console fülre, láss csodát, para:
"Uncaught SyntaxError: Unexpected token (
(index):517"
ergo a kimenet 517. sorban van egy zárójelezési para, ha ezt megnézed a source-ban:if((opt_play_first && first_track)) || (opt_auto_play && !first_track)) {
my_jPlayer.jPlayer("play");
}itt a zárójel tök káoszos (ez mondjuk egy rendes IDE-ben vagy akár szövegszerkesztőben is látszik, ha a kurzort odateszed, IDE (pl. NetBeans, Eclipse, ilyesmik) még szól is érte), tehát cseréld erre:
if( (opt_play_first && first_track) || (opt_auto_play && !first_track) ) {
my_jPlayer.jPlayer("play");
}Amúgy ha parád van, és nincs tisztességes IDE kéznél, akkor sokat segít, ha bedobod ide a kódodat:
http://www.jshint.com/
ellát mindenféle tanácsokkal, hogy mit kéne javítanod a kódodon.Na, a lényeg, alakítsd vissza az eredetire a kódodat teljesen, javítsd ki ezt a zárójelezési parát, aztán jelezz, mire jutottál.
[ Szerkesztve ]
Sk8erPeter
-
The DJ
addikt
válasz Sk8erPeter #3762 üzenetére
"Külső JS-fájlba érdemes pakolni az ilyesmit, pluginnel behúzni, stb"
Ha tehetem én így csinálom, ez viszont most a sablonkészítők sara. Ez így egy az egyben maga a theme egyik PHP fájljában található. Javascript, PHP, CSS, minden egy helyen. Nem a legelegánsabb, de már nem is annyira izgat, csak működne minden. Jó ideje szenvedek ezzel a honlappal (szívességből ráadásul) és olyan dolgokat csináltam már meg rajta, amikre nem is tudtam, hogy képes vagyok Viszont ez a Javascriptes autoplay most megint feladta a leckét.
A hiba megint az én figyelmetlenségem. Az egész estét erre szántam rá, de így a végére már alig látok. Mindenesetre javítottam a zárójel problémát is.
A segítséget és a tippeket viszont hálásan köszönöm!
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
Sk8erPeter
nagyúr
Eleve nem értem, sablonban mit keres a jPlayer komplett kódja. Abszolút nem sminkelési feladat egy komplett lejátszó működésre bírása, kódjának beillesztése, ilyesmik. A sminkelés körébe az tartozik, hogy maga a jPlayer-lejátszó hogy nézzen ki. Nem maga a működési logika.
Szóval az egybecseszésről oké, hogy nem Te tehetsz, de attól még undormány marad.Na, de a parára visszatérve most hirtelen nem ugrik be, miért is nem működik, de javítsd már a JavaScriptes parákat előbb, például ezt, az ajax.js fájlodban:
//Add Event Listener to search form
$("#searchform").submit(function(e) {
location.hash = '?s=' + $("#s").val(return str.replace(/\s+/g, '%20'));
e.preventDefault();
});erre jelez hibát, joggal, mivel a zárójelben nyomatsz egy return-t, aminek semmi értelme.
Miután javítottuk a triviális hibákat, azután tudunk továbbmenni, minden ilyen nagy hiba számíthat.[ Szerkesztve ]
Sk8erPeter
-
The DJ
addikt
válasz Sk8erPeter #3765 üzenetére
Egyre inkább kezdem belátni, hogy ez a sablon egy gány munka. Ráadásul ezért fizetett a tulajdonos. Elvileg jár azonnali support hozzá. Erről meg annyit, hogy a privát fórumban 3 hete feltett kérdésemre azóta sem érkezett egy válasz sem.
Az ajax.js fájlban található hibát javítottam. Viszont ahogy lentebb görgettem megláttam ott is ugyanazt a jplayer kódot, mint amit pastebin-re töltöttem fel a PHP fájlból. Akkor lehet azt kellene inkább szerkesztgetni?
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
Sk8erPeter
nagyúr
"Viszont ahogy lentebb görgettem megláttam ott is ugyanazt a jplayer kódot, mint amit pastebin-re töltöttem fel a PHP fájlból. Akkor lehet azt kellene inkább szerkesztgetni?"
B@szki... Hát ha ilyenek vannak, ne csodálkozz, hogy nem műxik a kód.
Nyilván szedd ki az egyiket, és ja, csak azt módosítsd, az legalább külön fájlban van.
Gondolom már így is bele kellett tákolnod vmelyik fájlba, szóval nem ront a helyzeten.
Na, lényeg, hogy csak egy helyen legyen minden ilyen kód, csak egy helyen szerkeszd, és akkor tovább tudunk lépni. Ergo az egész korábbit, amiről dumáltunk, szedd ki, ahogy van. Hagyd meg azt a kódot eredeti formájában, ami van az ajax.js-ben. Ha ez megvan, teszteld le, aztán szólj, mi a pálya.Sk8erPeter
-
The DJ
addikt
válasz Sk8erPeter #3767 üzenetére
Kiszedtem a PHP fájlból a player javascript kódját. Az oldal és a sample hallgatás továbbra is működik, úgyhogy a duplikáció elvileg megszüntetve és így már a JS kód is külön van.
Tehát itt van a lényeg: [link]
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
Sk8erPeter
nagyúr
Na várj, eleve miért kell duplaklikkelni a sample-feliratra, hogy elinduljon a lejátszás?
"Double click on the title to start the sample"
Most nem volt kedvem keresgélni, hogy mitől függ, meg hol van ez beállítva, de ha eleve duplaklikkelni kell a lejátszáshoz, akkor a ready-n belül nem sima .click() kéne, hanem .dblclick().Tehát megpróbálhatnád első körben így:
ready: function () {
$(".demo-container .track-default").click();
},HELYETT:
ready: function () {
$(".demo-container .track-default").dblclick();
},Ergo ez duplaklikkelni fog, rögtön betöltődés után, nem sima klikkelni.
Meglátjuk, így jó-e.
Ha igen, akkor értelmesebb lenne eleve megszüntetni azt, hogy dupla klikkre működjön, mert az tök hülyeség. Most nem kotortam át a kódot, de megírhatnád, hogy azért mi felelős.Sk8erPeter
-
The DJ
addikt
válasz Sk8erPeter #3769 üzenetére
"Na várj, eleve miért kell duplaklikkelni a sample-feliratra, hogy elinduljon a lejátszás?"
Mert ez a sablon eredetileg audio anyagok eladására lett tervezve és az admin felületen van lehetőség több sample hanganyagot is feltölteni, mivel ugye ha egy 16 tracket tartalmazó CD-t akarsz eladni, akkor szeretnéd, hogy mindegyik dalba bele lehessen hallgatni. Ez a funkció a tulajnak nem kell, mivel neki csak egy sample hanganyag van minden termékhez, viszont a lejátszás csak duplakattal indul, mivel az első kattintás ugye kiválasztja a zenét, a második pedig indítja. Csak ez itt kicsit okafogyott, mert nincs mit kiválasztani egy sample fájl esetén. A dupla klikkes angol szöveget is már én írtam oda, hogy egyértelmű legyen a dolog.
Az általad javasolt cserét megejtettem az ajax.js fájlban, de az eredmény továbbra is ugyanaz: Minden működik, de csak dupla kattintással, ahogy eddig is. Magától nem indul el így sem. Makacs egy jószág.
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
Sk8erPeter
nagyúr
"mivel ugye ha egy 16 tracket tartalmazó CD-t akarsz eladni, akkor szeretnéd, hogy mindegyik dalba bele lehessen hallgatni"
Ez egyáltalán nem indokolja, hogy duplaklikkelni kelljen. Szóval nem magyaráztál meg igazából ezzel még semmit.
Egy playlistnél miért kéne, hogy duplaklikkre működjön? Semmi logika abban, hogy első klikkre ki legyen választva a szám, második klikkre induljon el. Nem is így szoktak működni a lejátszók. A YouTube-on sem így működik. A jPlayer hivatalos oldalán sem így működik:
http://jplayer.org/latest/demo-02-video/
meg úgy általában nem így szokott működni. Mert totál logikátlan. EGY kattintásra ki kéne választania a számot, és elindítani.Azt meg nem értem, hogy miért nem működik. Igazából debuggolni kellene, hogyan fut le a kód. Felrakhatnál egy jsFiddle-demót is róla, hogy ki tudjuk próbálni, külön működik-e. Működnie kéne elvileg, csak agyalni kéne rajta, most miért nem teszi, nekem sajna most nincs időm tesztelni... Viszont a külön jsFiddle-demó gyorsíthatna a dolgon.
Viszont azt kéne kiderítened, hogy ez a duplaklikkelési kényszer HOL kerül beállításra, mert az fontos lehet.
[ Szerkesztve ]
Sk8erPeter
-
bazsika33
csendes tag
Jó estét, Lenne 1 kérdésem, íme:
Az a gondom h van közel 100 markerem és jó lenne ha a térkép center-ét a html-ben tudnám megadni (tehát a Fehérház html-en a Fehérház marker-je legyen a térképem központja). A js-be alapból meg kell vmi center-t adni (és így minden html-ben ugyanaz lesz a center - még akkor is ha a center-t a html-ben is megadom...).
Bocsánat, kicsit láma vagyok ehhez a témához. Ami eddig van azt is hetek alatt sikerült összehoznom. De legalább ismerkedem a témával......
Tehát azt szeretném h a center-t a html-ben tudjam beállítani. Minden további adatot pedig a js-em tartalmazza.
Tippek? Egyáltalán meg lehet ezt oldani vhogyan? Köszi...Tehát tömören a kódok:
---------- HTML ----------
<script>
function initialize() {
var mapOptions = {
zoom: 13,
center: new google.maps.LatLng(20.805121,20.436148),
mapTypeId: google.maps.MapTypeId.NORMAL
};var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
}function loadScript() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&' +
'callback=initialize';
document.body.appendChild(script);
}window.onload = loadScript;
</script>
---------- JS ----------
var map;
var marker;
var icon;
var image;
var link;
var to_html;
var from_html;
var infowindow;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(10.777916,10.270348),
zoom: 13,
mapTypeId: google.maps.MapTypeId.NORMAL,};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);// -------------- MARKER 1
var myLatlng = new google.maps.LatLng(0.805121,0.436148);
var marker1 = new google.maps.Marker({
position: myLatlng,
map: map,
icon: new google.maps.MarkerImage('../img/b.png'),
tooltip: '...'
});var tooltip1 = new Tooltip({map: map}, marker1);
tooltip1.bindTo("text", marker1, "tooltip");
google.maps.event.addListener(marker1, 'mouseover', function() {
tooltip1.addTip();
tooltip1.getPos2(marker1.getPosition());
});
google.maps.event.addListener(marker1, 'click', function() {
map.setCenter(this.getPosition());
map.setZoom(15);
window.location.href = marker.url;
});google.maps.event.addListener(marker1, 'mouseout', function() {
tooltip1.removeTip();
});
// -------- END OF 1st MARKER// -------------- MARKER 2
var myLatlng = new google.maps.LatLng(1.883236,1.443302);
var marker2 = new google.maps.Marker({
position: myLatlng,
map: map,
icon: new google.maps.MarkerImage('../img/c.png'),
tooltip: '...'
});var tooltip2 = new Tooltip({map: map}, marker2);
tooltip2.bindTo("text", marker2, "tooltip");
google.maps.event.addListener(marker2, 'mouseover', function() {
tooltip2.addTip();
tooltip2.getPos2(marker2.getPosition());
});google.maps.event.addListener(marker2, 'mouseout', function() {
tooltip2.removeTip();
});
// -------- END OF 2nd MARKER
} -
Sk8erPeter
nagyúr
válasz bazsika33 #3772 üzenetére
Mindezt rakd fel kérlek jsFiddle-re, hogy ne nekünk kelljen vele tökölnünk:
értelemszerűen mindenféle kódot a saját panelébe, HTML-t a HTML-hez, JavaScript-kódot a JavaScript-panelbe, CSS-kódot a CSS-panelbe, aztán mentsd el a Save-re kattintva, majd a kapott URL-t dobd be ide nekünk.
Sk8erPeter
-
bazsika33
csendes tag
válasz Sk8erPeter #3773 üzenetére
JS google map problémám a következő:
http://jsfiddle.net/kxQw8/
Nekem nem jelenik meg semmi, sztem rosszul töltöttem be... De ehhez annyira nem értek.
Amúgy a térkép itt található: http://googlemap.friweb.hu/Tehgát: minden egyes markerhez a saját html oldalán a marker centerjét szeretném beállítani. Tehát pl. a parlament html-en a parlament marker-je legyen a térképem központja.
A js-be meg kell adni egy centert és így minden html-ben jelenleg ugyanaz lesz a center (lánchíd) - még akkor is ha a centert a html-ben is megadom. Nekem ez a bajom...Tehát azt szeretném h a centert a html-ben tudjam beállítani. Minden további adatot pedig a js-em tartalmazza.
Közel 100 marker esetén ez nagy könnyítés lenne...
Tippek? Egyáltalán meg lehet ezt oldani vhogyan? Köszi... -
Jim-Y
veterán
válasz bazsika33 #3774 üzenetére
ezt többféleképp is meg lehet oldani, az egyik, hogy a js-ben le tudod kérdezni az url-t, ki tudod nyerni belőle, hogy melyik oldalon vagy épp, és e szerint be tudod állítani a centert.
Például felveszel egy olyan js objectet amiben a kulcsok a html oldalak nevei, értékek a latlng-ok.
var centers = {
elsoldal: new google.maps.LatLng(47.499014,19.043840),
masodik: new google.maps.LatLng(47.499014,19.043840)
stb...
}majd lekéred az url-t, ynílván az vmi http://enoldalam.hu/elsooldal.html lesz, ebből kinyered, hogy elsooldal, majd kikeresed az ehhez a kulcshoz tartozó értéket a centers objektumban és beállítod centernek.
Másik megoldás lehet, hogy a html kódba valahogy beégeted a koordinátákat, erre asszem vannak megoldások valamilyen data-* módszerrel, majd a js-ben lekéred a DOM-ból ezt az értéket még inicializálás előtt és beállítod centernek.
üdv
-
Sk8erPeter
nagyúr
válasz bazsika33 #3774 üzenetére
Így már működik a példád:
http://jsfiddle.net/kxQw8/2/
De igazából csak működőképessé tettem jsFiddle-ön, érdemben nem módosítottam rajta."Tehgát: minden egyes markerhez a saját html oldalán a marker centerjét szeretném beállítani. Tehát pl. a parlament html-en a parlament marker-je legyen a térképem központja."
Annyira nem jó ötlet, hogy minden egyes helyszínhez újabb és újabb HTML-fájlokat hozol létre, mondjuk a 30. helyszínnél már el fogsz gondolkozni rajta, hogy biztos nincs-e egyszerűbb megoldás. Query stringbe kellene belerakni a helyszínek neveit."A js-be meg kell adni egy centert és így minden html-ben jelenleg ugyanaz lesz a center (lánchíd) - még akkor is ha a centert a html-ben is megadom. Nekem ez a bajom...
[...]
Tehát azt szeretném h a centert a html-ben tudjam beállítani."
Hogy a "HTML-ben is megadom", meg a "HTML-ben tudjam beállítani", azt nem egészen értem, mivel itt is JavaScript-kódban adtad meg a kezdőkoordinátákat. Persze amúgy HTML-kódba is bepasszírozhatod a már említett data-* attribútumokkal (erre kell gondolni: http://html5doctor.com/html5-custom-data-attributes/), csak nem biztos, hogy érdemes.Több markert így tudsz értelmesen kezelni:
https://developers.google.com/maps/documentation/javascript/examples/icon-complexItt van egy Places API-val összekötött térképes kereső:
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
amint a találatra mész, középre rakja.Érdemes megnézni itt a demókat:
https://developers.google.com/maps/documentation/javascript/examples/A saját kódodban itt adtad meg a középponti koordinátákat:
var myLatlng = new google.maps.LatLng(47.506999, 19.045489);Ez itt van:
https://maps.google.com/maps?ll=47.499014,19.045299&z=13&t=m&hl=en-US&mapclient=apiv3
lásd az URL-ben ezt a részt: maps?ll=47.499014,19.045299
(tehát a query stringben ez a lényeg: ll=47.499014,19.045299
Tehát az eredmény azt mutatja, amit megadtál neki.Sk8erPeter
-
bazsika33
csendes tag
válasz Sk8erPeter #3776 üzenetére
A 0ról kezdtem felépíteni a gmap-omat, kevéske tudással. Néztem mintákat, fórumokat, ollóztam össze innen-onnan. Mivel a markerek száma folyamatosan nőni fog, így az adatokat mfképpen 1 js-ben szeretném tárolni. És a lényeg az lenne h az összes pont (az újak is) az összes html-en megjelenjen.
Konkrétan a data megoldásban tudnátok segíteni? Berakni vhogyan a parlament html-be a partlament marker 'latlng'-jét ide (hogy az legyen a parlament html-en a térképem centerje):
<div id="map">
<div id="map_canvas" style="width:100%; height:400px"></div>
</div> -
Sk8erPeter
nagyúr
válasz bazsika33 #3777 üzenetére
Itt beírtam, hogy "Parlament, Budapest", vagy "Országház", vagy " 1055 Budapest, Kossuth Lajos tér 1-3.", vagy ahogy épp rátalálsz, aztán alul a "Click to see this area on Google Maps"-nél kattints (láthatod fölévitellel az URL-t):
https://maps.google.com/maps?ll=47.507121,19.045669&z=17&t=m&hl=en-US&mapclient=apiv3
(vagy az új Google Maps új URL-je szerint:
https://www.google.com/maps/preview#!data=!1m4!1m3!1d4716!2d19.045669!3d47.507121
)természetesen ll=47.507121,19.045669 az érdekes. Ez a felhasználandó koordináta.
Ez alapján nézd meg a kódot jól, felhasználtam a map divjénél a data-attribútumokat, és a JavaScript-kódban is ezzel babráltam:
http://jsfiddle.net/kxQw8/4/Konkrétan:
HTML:
<div id="map_canvas" style="width:100%; height:400px" data-map-center-lat="47.507121" data-map-center-lng="19.045669"></div>JS:
var map_canvas = document.getElementById("map_canvas");
var center_lat = map_canvas.getAttribute('data-map-center-lat');
var center_lng = map_canvas.getAttribute('data-map-center-lng');
// ...Szerk.:
még annyi, hogy az általad felhasznált Tooltipes kód nem tudom, honnan származik, de hiányos, mivel exceptionöket dobál nem létező metódusok felhasználása miatt.
Rákerestem, hátha meglelem a forrását, akkor ezt találtam:
http://stackoverflow.com/questions/19383522/google-maps-api-v3-multiple-tooltips-with-custom-content
Ezt Te kérdezted meg?[ Szerkesztve ]
Sk8erPeter
-
bazsika33
csendes tag
válasz Sk8erPeter #3778 üzenetére
Köszönöm, erre gondoltam. Működik, igen... :-)
Még a tooltipet kellene visszaügyeskedni. A régiben működött. Nem én kérdeztem meg, de szinte biztos h innen vettem a kódot :-) -
bazsika33
csendes tag
válasz Sk8erPeter #3778 üzenetére
A kód nagy része egyébként innen van...
Szóval most már lehet a centert a html-ben módosítani (köszönet érte Sk8erPeter-nek), de a tooltip így nem működik... -
bazsika33
csendes tag
válasz Sk8erPeter #3778 üzenetére
Picit buheráltam rajta és már jónak tűnik.
Még egy kérdés: nem lehetne h a 'lat' 'lng' mellett a zoom mértékét is a html-ben lehessen állítani? -
Sk8erPeter
nagyúr
válasz bazsika33 #3781 üzenetére
Konkrétan mit buheráltál a Tooltipen, mivel bírtad működésre?
"Még egy kérdés: nem lehetne h a 'lat' 'lng' mellett a zoom mértékét is a html-ben lehessen állítani?"
Az előző után már nem kéne, hogy túl nagy trouvaille legyenA HTML eddig így nézett ki:
<div id="map_canvas" style="width:100%; height:400px" data-map-center-lat="47.507121" data-map-center-lng="19.045669"></div>
helyette legyen PÉLDÁUL ilyen (a data-attribútumokat teljesen tetszőlegesen találhatod ki, a "data-map-center-lng és hasonló neveket én adtam csak hasraütésre! Lehetett volna akár data-pityipalko is!):
<div id="map_canvas" style="width:100%; height:400px" data-map-center-lat="47.507121" data-map-center-lng="19.045669" data-map-zoom-level="15"></div>
A JS-kódba pedig kerüljön bele mondjuk ezután a sor után:
var center_lng = map_canvas.getAttribute('data-map-center-lng');
ez:
var zoomLevelAttr = map_canvas.getAttribute('data-map-zoom-level');
var zoomLevel = (zoomLevelAttr)? zoomLevelAttr : 13;aztán
var mapOptions = {
..........
zoom: zoomLevel,
..........
};hasonlóan bármilyen adatot bedrótozhatsz így a HTML-kódba, csak valami hasonló sémát kövess.
Szerk.:
Itt még egy pár percig percig próbálkoztam életre kelteni a Tooltipet, azzal játszottam, hogy definiáltam egy eseménykezelőt a térkép load eventjére, meg bemásoltam egy az egyben a Tooltip kódját, beraktam az inherit(Tooltip, google.maps.OverlayView); részt az initialize() függvénybe, aztán sikerült elcseszerinteni a dolgot, és végül most itt nem működik a térkép, és rohadtul nem volt most kedvem, agyam energiám folytatni De mintát vehetsz, itt benne van már a zoom-beállítás, csak náám múúkodik: http://jsfiddle.net/kxQw8/7/[ Szerkesztve ]
Sk8erPeter
-
bazsika33
csendes tag
válasz Sk8erPeter #3782 üzenetére
Köszönöm a segítséget, a térkép lényegében működik. Egyedül a html-ből állítható zoom nem megy.
jsfiddle.net -
Sk8erPeter
nagyúr
válasz bazsika33 #3783 üzenetére
Tudod, mi volt a gond?
Ez:var zoomLevelAttr = map_canvas.getAttribute('data-map-zoom-level');
var zoomLevel = (zoomLevelAttr)? zoomLevelAttr : 13;így önmagában hibátlan, DE ezt a hibát írja:
"Uncaught InvalidValueError: invalid argument to setZoom: 3 "
Az oka pedig az, hogy a zoomLevel string típusú lesz, miközben számot vár...
Ezért javítani kell így:var zoomLevel = (zoomLevelAttr)? parseInt(zoomLevelAttr, 10) : 13;
így már integerré konvertálja.
A Google Maps tesztelésénél a Google Maps scriptfájljainak betöltési módja miatt a jsFiddle-nél problémák tapasztalhatók, úgyhogy felraktam JS Binre:
http://jsbin.com/EzeBUTe/2/editA custom tooltip itt sem működik, de azzal nem foglalkoztam. De mivel írtad, hogy rájöttél, mi a baja, úgyhogy megoszthatnád.
[ Szerkesztve ]
Sk8erPeter
-
SirRasor
őstag
Hoi!
Tudtok olyanról, hogy az IE10 meg a legújabb chrome nem támogatná az alábbi utasítást?
document.getElementById("azonosító").style="display:block";, vagy akár visiblity:visible.
Egyszerűen nem jelenik meg a DIV, de FF alatt gyönyörűen működik.CSS-ben a visiblity:hidden/display:none-val próbálkoztam, hogy legyen kezdő érték. Amikor kiszedtem, akkor működött, tehát a CSS parancsokat tudják értelmezni külön-külön a böngészők. Esetleg még arra tudok gondolni, hogy ennél a 2 böngészőnél ha beállítok értéket CSS-en keresztül, akkor JS-sel nem engedi megváltoztatni azokat. Csinálhatnak ilyet?
[ Szerkesztve ]
Make Love not war!
-
-
SirRasor
őstag
válasz Sk8erPeter #3786 üzenetére
Hmm így tényleg működik. Az a vicces, hogy az én rossz megoldásomat egy lynda.com-os oktatóvideóból néztem Így viszont kész csoda, hogy FF-ban működött
Nagyon köszönöm!
Make Love not war!
-
bazsika33
csendes tag
válasz Sk8erPeter #3784 üzenetére
Tökéletes...
Mindegyik tooltip nálam tökéletesen működik. (de én azt használom ami itt található.)
Da ha már tooltip, akkor azzal annyi gond lehet h ha a marker a térkép alsó részében van, akkor bizony nem az egész része látszik... (bár talán ez már css probléma)
Köszönöm a segítséget, itt az eredmény... -
LógaGéza
addikt
Üdv!
Még most kezdek ismerkedni a Javascriptekkel, de sajnos a matek részén elakadtam (mint a régi iskolás időkben )
Van egy scriptem, aminek egy része a következő:
$("#price").html(Dollar((amt*0.1)+(((amt*0.1) < 15.01) ? 0.3 : 0)) + " Euro");
Ennél elvileg ha 100-at írok az amt-nek, akkor 40 Euro-t ad ki. Na ez érdekelne, hogy ezt hogy számolja ki, mert nem jövök rá
"Go to work, get married, have some kids, pay your taxes, pay your bills, watch your tv, follow fashion, act normal, obey the law, and repeat after me: I AM FREE"
-
LógaGéza
addikt
Tényleg az kimaradt.
function Dollar (val) {
var str,pos,rnd=0;
if (val < .995) rnd = 1;
str = escape (val*1.0 + 0.005001 + rnd);
pos = str.indexOf (".");
if (pos > 0) str = str.substring (rnd, pos + 3);
return str;
}Viszont akkor tényleg nem értem hogy jön ki a 40.00 Euro
"Go to work, get married, have some kids, pay your taxes, pay your bills, watch your tv, follow fashion, act normal, obey the law, and repeat after me: I AM FREE"
-
-
fordfairlane
veterán
-
LógaGéza
addikt
Elnéztem, 10,30-at kell adnia...
A 40.00-ra ez a függvény van:
$("#price").html(Dollar((amt*0.4)+(((amt*0.4) < 15.01) ? 0.3 : 0)) + " Euro");
Ez egy "mini-webáruházhoz" hasonlítható legjobban. 1 termék van, abból 2 típus. Eddig Euróval lehetett csak fizetni, én azt akarom megoldani, hogy lehessen Forinttal is - bár lehet egyszerűbb lenne azt megoldani, hogyha a Forint van kiválasztva, akkor az Euro értékét szorozza meg 300-al, és köszönöm...
A Dollar függvényhez én nem nyúltam egyáltalán, az készen jött valahonnan.
[ Szerkesztve ]
"Go to work, get married, have some kids, pay your taxes, pay your bills, watch your tv, follow fashion, act normal, obey the law, and repeat after me: I AM FREE"
-
LógaGéza
addikt
válasz fordfairlane #3796 üzenetére
Tudom, de így legalább kijön a keresett összeg.
"Go to work, get married, have some kids, pay your taxes, pay your bills, watch your tv, follow fashion, act normal, obey the law, and repeat after me: I AM FREE"
-
Sk8erPeter
nagyúr
válasz LógaGéza #3795 üzenetére
Ez a Dollar() függvény, meg annak felhasználási módja úgy, ahogy van, rossz, ne ilyenből próbáld megtanulni a JavaScriptet. Nem tudom, honnan származik a függvény, de felejtős. Már eleve a neve félrevezető, nem is értem, honnan kapta. Azt sem tudom, mire jó, hogy amennyiben 0 és 1 közötti számot adok be neki, akkor levágja az elejéről a 0-t, és marad a tizedespont utáni rész, aminél ráadásul be van drótozva a pont (nincs lehetőség ennek átadására), pedig ez országfüggő lehet, lásd mi például a tizedesvesszőt használjuk. De mivel itt "Dollar" a függvény neve, biztos úgy gondolták, ez helyénvaló lesz. Az sincs lekezelve benne, mi van, ha negatív számot adok meg.
A lényeg nagyon röviden: ez a függvény mindössze két tizedesre kerekít, semmi mást nem csinál. Ha beadod neki, hogy 10, akkor csinál belőle 10.00-t. Ha úgy hívod meg, hogy mondjuk Dollar(10123.5678), akkor stringként visszaad neked "10123.57"-et. Igazából ennyi.Erre viszont ennél jóval értelmesebb, rövidebb és legfőképp JÓL MŰKÖDŐ megoldások is vannak, lásd:
http://stackoverflow.com/questions/11832914/round-up-to-2-decimal-places-in-javascriptElőző példával élve:
var myNumber = 10123.5678;
var fixedPointNumberAsAString = parseFloat(myNumber).toFixed(2);
// eredmény: "10123.57"VAGY:
var myNumber = 10123.5678;
var fixedPointNumber = Math.round(myNumber * 100) / 100;
// eredmény: 10123.57Utóbbi esetben számot fogsz kapni eredményül, nem pedig egy stringet.
[ Szerkesztve ]
Sk8erPeter
-
TomyLeeBoy
tag
Üdv. Egy kis segítségre lenne szükségem. Van egy oldalon két táblázat, mind a kettő sorainak színe megváltozik rámutatással, ezt onmouseover="this.style.background='#FFFF66';" -al, illetve onmouseout párjával oldottam meg. Mindkét táblázatban kattintásra egy új színt kap a sor, ami úgy is marad következő kattintásig, tehát "kijelölődik", ehhez csináltam egy js funkciót, nem túl bonyolult, működik szépen.
A lényeg az lenne, ha az egyik táblázatban kattintok egy sorra, ahhoz van egy sor "társítva" a másik táblázatban id alapján, így egy kattintással mindkettő háttérszínének meg kellene változnia, módosítottam is a js funkciót ennek megfelelően.
Órákig kerestem a hibát miért nem működik, mire rájöttem hogy működik, csak nem látszik az eredmény.
Kattintok az 1-es táblázatban, megváltozik a sor színe, úgy is marad. A másik táblázatban lévő, hozzá tartozó soron látszólag semmi változás. Ráhúzom az egeret, lehúzom róla és megváltozik annak a színe is a kijelöltre.Tehát a lényeg, hogy a második táblázat sorának is megváltozik a háttérszín értéke
document.getElementById(rowid).style.background = rowcolor;
ettől, csak nem látszik amíg valami nem történik vele (pl ráhúzom az egeret). Hogyan lehetne megoldani hogy "frissüljön" is egyből, és látszódjon is az új szín?
Remélem érthető a probléma.
Az idő sebessége: 1s/s
Új hozzászólás Aktív témák
- ARCTIC Liquid Freezer 360 II A-RGB rev.3 ( Garancia )
- NAD M25 7Ch Master Series végfok végerősítő
- Sony 55-210mm f/4.5-6.3 OSS (Sony E)
- Eladó több mint 2 év garanciával - LG OLED48C21LA / 4K/UHD/2160P/120Hz/OLED
- Razer Blade 16 2023 (i9 13950HX,RTX 4090 16Gb, 32GB DDR5 5600Mhz, 2x 1TB, 16" Dual UHD+FHD+ MiniLED)