odkaz v google mapě, nejde ajax
- batko
- Člen | 219
CZechBoY napsal(a):
Zkus znova nabindovat nette.ajax po načtení mapy.
To jsem zkusil, ale nikterak to nepomohlo… Zkusil jsem všechny možné varianty.
EDIT:
Pokud kliknu poprvé na odkaz mimo mapu a již se ajaxový požadavek jednou provede, tak následně to jde již i z mapy…
Editoval batko (2. 2. 2016 16:47)
- batko
- Člen | 219
Hurass napsal(a):
batko napsal(a):
To jsem zkusil, ale nikterak to nepomohlo… Zkusil jsem všechny možné varianty.To je divné, mělo by to pomoct. Kde includuješ do šablony nette.ajax, až na úplně konci?
ano je to poslední řádek kódu. Pak už je jen </body></html>. Ten kod je testovací…
<?php
<html>
<meta charset="utf-8">
<title>Map Icons Example</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<!-- Google Maps -->
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<link rel="stylesheet" type="text/css" href="/map/www/css/map-icons.css">
<script type="text/javascript" src="/map/www/js/map-icons.js"></script>
<style>
html,
body,
#map-canvas {
margin: 0;
width: 500px;
height: 500px;
}
</style>
</head>
<body>
<a class="ajax" href="/map/www/?do=set">nová data</a>
<a id="asd" class="ajax" href="/map/www/?do=data">tesasdasdasdt</a>
<script>
var map = null;
function initialise() {
var mapCanvas = document.getElementById('map-canvas');
// Center
var center = new google.maps.LatLng(49.752880, 13.375854);
// Map Options
var mapOptions = {
zoom: 16,
center: center,
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: [
{ stylers: [{ visibility: 'simplified'}]},
{ elementType: 'labels', stylers: [{ visibility: 'off'}]}
]
};
// Create the Map
map = new google.maps.Map(mapCanvas, mapOptions);
test();
}
var pole = [];
</script>
<div id="snippet--dataa"> <script>
function test() {
if (pole.length > 0) {
for (var i = 0; i < pole.length; i++) {
pole[i].setMap(null);
}
pole = [];
}
var marker0 = new Marker({
map: map,
position: new google.maps.LatLng(49.753,13.376),
icon: {
path: SQUARE_PIN,
fillColor: '#00CCBB',
fillOpacity: 1,
strokeColor: '',
strokeWeight: 0
},
map_icon_label: '<span class="map-icon map-icon-point-of-interest"><a class="ajax" href="\/map\/www\/?do=data">testdfgdfgd</a></span>'
});
pole[0] = marker0;
var marker1 = new Marker({
map: map,
position: new google.maps.LatLng(49.758,13.38),
icon: {
path: SQUARE_PIN,
fillColor: '#00CCBB',
fillOpacity: 1,
strokeColor: '',
strokeWeight: 0
},
map_icon_label: '<span class="map-icon map-icon-point-of-interest"><a class="ajax" href="\/map\/www\/?do=data">testdfgdfgd</a></span>'
});
pole[1] = marker1;
}
test();
</script>
</div>
<script>
google.maps.event.addDomListener(window, 'load', initialise);
</script>
<div id="map-canvas"></div>
<a class="ajax" href="/map/www/?do=set">nová data</a>
779236
<a class="ajax" href="/map/www/?do=set">nová data</a>
<div id="snippet--data"> 49.753,13.376<br>
49.758,13.38<br>
</div><a class="ajax" href="/map/www/?do=set">nová data</a>
<div id="snippet--box">
</div>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//nette.github.io/resources/js/netteForms.min.js"></script>
<script src="/map/www/js/main.js"></script>
<script src="/map/www/js/nette.ajax.js"></script>
</body>
</html>
?>
Editoval batko (2. 2. 2016 17:31)
- iguana007
- Člen | 970
A kde máš inicializaci:
$(function () {
$.nette.init();
});
…jak se píše v dokumentaci: https://github.com/…ette.ajax.js ?
- batko
- Člen | 219
iguana007 napsal(a):
A kde máš inicializaci:
$(function () { $.nette.init(); });
…jak se píše v dokumentaci: https://github.com/…ette.ajax.js ?
<script src=„/map/www/js/main.js“></script>
- iguana007
- Člen | 970
Začal bych tím, že bych prohodil ty dva poslední JS soubory:
<script src="/map/www/js/nette.ajax.js"></script>
<script src="/map/www/js/main.js"></script>
tj. aby se ti main.js načítal až potom, co načteš nette.ajax.js a taky přesunul všechen JS do main.js, ať to není v <body>
Potom bych si zkusil pohrát s eventy google map (více o eventech zde: https://developers.google.com/…cript/events),
protože podle mě se ti tam stane následující:
Když klikneš na tlačítko v google mapách (třeba zoom), tak se ti ta mapa
překreslí a AJAXové odkazy již nejsou ajaxovými, protože nastavený
listener se ti zruší.
Proto bych zkusil na idle event v mapách přidat reinicializaci Nette ajaxu:
google.maps.event.addListener(map, 'idle', function() {
$.nette.load();
});
- batko
- Člen | 219
iguana007 napsal(a):
Začal bych tím, že bych prohodil ty dva poslední JS soubory:
<script src="/map/www/js/nette.ajax.js"></script> <script src="/map/www/js/main.js"></script>
tj. aby se ti main.js načítal až potom, co načteš nette.ajax.js a taky přesunul všechen JS do main.js, ať to není v <body>
Potom bych si zkusil pohrát s eventy google map (více o eventech zde: https://developers.google.com/…cript/events), protože podle mě se ti tam stane následující:
Když klikneš na tlačítko v google mapách (třeba zoom), tak se ti ta mapa překreslí a AJAXové odkazy již nejsou ajaxovými, protože nastavený listener se ti zruší.Proto bych zkusil na idle event v mapách přidat reinicializaci Nette ajaxu:
google.maps.event.addListener(map, 'idle', function() { $.nette.load(); });
Děkuji za nakopnutí. Je to ono a funguje to super. DÍKY MOC tímto je problém vyřešen.