Hola Estoy utilizando el complemento de jQuery fancybox para mostrar los mapas de bing cuando alguien ingresa una dirección en un cuadro de texto y presiona el botón Enviar junto a él. Y se carga un fancybox y se muestra un mapa para esa dirección. Esto está funcionando bien con mi aplicación, pero el problema es que solo funciona bien en una página y en la otra, cuando la cargo, me está dando un error al decir que Fancybox no es una función. Veo este error en la consola de error y en la consola de Firebug. No estoy seguro de cuál podría ser el problema. El mismo código funciona en otra página, pero no en esta?Fancybox no es una función
$("<a href=\"#showmap\">Map</a>").fancybox is not a function
Estoy bastante seguro de que no es un problema de reutilización. Pero cuando pruebo para ver si los archivos originales de fancybox se han cargado, se cargan con el dom, por lo que podría no ser un problema real. Pero no puedo entender qué otra cosa podría ser el problema.
Este es mi código
abbr: es sólo un poco de texto. Tengo diferentes divs basados en lo que el usuario selecciona. Y cada div tendría sus propios controles, que comenzarían con ese texto y se anexarían con sus propias definiciones, como mapresults, decValLat, decValLon, etc.
ex: abbr >> east y luego los ids serían thismapresults, eastdecValLat, etc. eastdecValLon
function showMapFancybox(abbr){
var abbr;
$('#'+abbr+'mapresults').hide();
$('<a href="#showmap">Map</a>').fancybox({
overlayShow: true,
onClosed: function() {
$('#'+abbr+'mapresults').show();
map_latdec = $('#decValLat').attr('value');
map_longdec = $('#decValLon').attr('value');
map_latdeg = $('#degValLat').attr('value');
map_longdeg = $('#degValLon').attr('value');
$('#'+abbr+'decValLatsub').val(map_latdec);
$('#'+abbr+'decValLonsub').val(map_longdec);
$('#'+abbr+'degValLatsub').val(map_latdeg+'N');
$('#'+abbr+'degValLonsub').val(map_longdeg+'W');
}
}).click();
};
¿Por qué redefiniría abbr ya que es un argumento de su función? – Harmen
Acabo de editar la pregunta. Espero que esto ayude. – macha
Me parece que la página en la que no funciona no tiene el archivo javascript que define 'fancybox'. ¿Has verificado que estés incluyendo los mismos archivos javascript en ambas páginas? – andrewle