Hacer funcionar lightbox junto a dojotoolkit
Sep 21st, 2006 by T.Bogard
Diox! que sufrimiento! Aca doy solucion a un problema atipico entre scriptaculous y dojo. Mas de uno tiene el mismo problema (yo lo tengo con el lightbox), y es como hacer que lightbox funcione con dojo sin problemas.
He actualizado mis librerias a scriptaculous 1.6.2. y trabajo normal con dojo 0.3.1.
1. Como reproducir el error:
tenemos lo siguiente al cargar nuestro codigo:
1 2 3 4 | <script src="/library/dojo/dojo.js" type="text/javascript"></script> <script src="/library/js/prototype.js" type="text/javascript"></script> <script src="/library/js/scriptaculous.js" type="text/javascript"></script> <script src="/library/js/lightbox.js" type="text/javascript"></script> |
tenemos luego una imagen que carga nuestro lightbox
5 6 7 8 9 | <a href="javascript:void(0);"><img src="/87/html_cont/img/tapa_th.jpg" onclick="myLightbox.start(document.getElementById('first_a')); return false;" width="300" height="411" border="0"></a>
<a href="http://localhost:4001/87/html_cont/img/tapa.jpg" id="first_a" rel="lightbox[roadtrip]">
<input value="Exclusivo" type="hidden" /> <input value="Monica Perez" type="hidden" /> <input value="Su misteriosa Historia." type="hidden" /></a>
<a href="javascript:void(0);" onclick="myLightbox.start(document.getElementById('first_a')); return false;"><img src="/library/img/ampliar.gif" border="0" height="23" width="70" /></a>
<p class="notaImg">En exclusiva la misteriosa historia de Monica Perez</p> |
al hacer click sobre la imagen, nos da un error que no percibimos, por eso abri la consola de javascript de mi browser para investigar y sale esto:
“Effect is not defined”
2. Solucion:para solucionar este problema es forzar la definicion de la variable effect. Scriptaculous llama dinamicamente (en teoria) los archivos de effectos y otros. asi que hay que llamar, en este caso a effects.js:
1 2 3 4 5 | <script src="/library/dojo/dojo.js" type="text/javascript"></script> <script src="/library/js/prototype.js" type="text/javascript"></script> <script src="/library/js/effects.js" type="text/javascript"></script> <script src="/library/js/scriptaculous.js" type="text/javascript"></script> <script src="/library/js/lightbox.js" type="text/javascript"></script> |
Listo! ahora ya lightbox funciona sin problemas con dojo 0.3.1 y scriptaculous 1.6.2
Esto implica que, si se desean mas caracteristicas de scriptaculous, hay que llamarlas antes de llamar a scriptaculous.js.

