Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/04/2012, 15:29
Avatar de hmvr414
hmvr414
 
Fecha de Ingreso: marzo-2011
Ubicación: Santiago de Cali, Colombia
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: Problemas para pasar una variable de un script a otro

Hola,

Una opción:

modificar la llamada a changepicturecallback en la version de desarrollador de prettyphoto, para pasar el valor del href del enlace:

Código Javascript:
Ver original
  1. línea 537
  2. settings.changepicturecallback(); // Callback!


cambiar por:

Código Javascript:
Ver original
  1. settings.changepicturecallback(pp_images[set_position]); // Callback!


con eso uno puede leer como parametro en la funcion changepicturecallback el href del enlace, y para recuperar el parametro requerido se puede usar la funcion getParam que esta definida en el mismo prettyphoto:

Código Javascript:
Ver original
  1. function getParam(name,url){
  2.       name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  3.       var regexS = "[\\?&]"+name+"=([^&#]*)";
  4.       var regex = new RegExp( regexS );
  5.       var results = regex.exec( url );
  6.       return ( results == null ) ? "" : results[1];
  7. }

entonces la llamada a prettyphoto puede cambiar a:

Código Javascript:
Ver original
  1. $("#googlemaps a[rel^='prettyPhoto']").prettyPhoto({theme:'pp_default',animation_speed:'slow',
  2.         custom_markup: '<div id="map_canvas" style="width:600px; height:480px"></div>',
  3.         changepicturecallback: function(e){
  4.        
  5.         initialize(getParam("lat",e), getParam("lng",e));
  6.        
  7.        
  8.         }});

y la funcion initialize:

Código Javascript:
Ver original
  1. function initialize(lat,lng) {
  2.     var latlng = new google.maps.LatLng(lat,lng);
  3.     var myOptions = {
  4.       zoom: 16, /* Nivell de zoom */
  5.       center: latlng,
  6.       mapTypeId: google.maps.MapTypeId.ROADMAP /* tipus de mapa */
  7.     };
  8.     var map = new google.maps.Map(document.getElementById("map_canvas"),
  9.         myOptions);
  10.   }

y luego la ubicacion puede definirse en el href:

Código HTML:
Ver original
  1. <div class="galery_clearfix" id="googlemaps"><a href="#?custom=true&width=600&height=480&lat=41.287276&lng=1.251579" rel="prettyPhoto" title="">Ampliar mapa</a></div>
  2. <div class="galery_clearfix" id="googlemaps"><a href="#?custom=true&width=600&height=480&lat=28.4189&lng=-81.581254" rel="prettyPhoto" title="">Otro mapa</a></div>