quinta-feira, 10 de maio de 2012

PrettyPhoto is not a funcion

Tive um problema hoje ao inserir uma galeria do PrettyPhoto. Funcionava normalmente em outra página então simplemente copiei e colei o script jQuery (vindo do Google CDN) e o caminho do script do PrettyPhoto e é claro o link para o CSS do PrettyPhoto.

Mas sempre que eu clicava na imagem era redirecionado para a url da própria imagem (já que é o comportamento padrão caso não sejam carregados os scripts da PrettyPhoto). Porém o script do PrettyPhoto estava linkado e aberto corretamente pelo browser como pude observar no FireBug, assim como o jQuery.

Verifiquei que o erro apresentado era de que "PrettyPhoto is not a function" que significa que a função prettyPhoto que é definida no script PrettyPhoto.js não existe. Mas se ela está declarada porquê não existe?

Depois de buscar bastante, encontrei a solução aqui: http://www.wptavern.com/forum/troubleshooting/1961-thumbnail-linking-3.html - Último Post #24

Então troquei o código


$(document).ready(function() {
$("a[rel^='prettyPhoto']").prettyPhoto();
});


por


jQuery(document).ready(function($) {
$("a[rel^='prettyPhoto']").prettyPhoto();
});

Ainda estou procurando por uma explicação exata do porque não ter funcionado sem passar o objeto jQuery($) por parâmetro. Assim que identificar o porque eu posto aqui. Por enquanto serve como uma dica para salvar o seu dia!

2 comentários:

William Brito disse...

Eai pessoal beleza…
Olha só fiz conforme solicitado acima
mais infelizmente não deu certo, alguem
pode me ajudar e dizer o porque está dando pau!
-
Quando clico a imagem abre não como PrettyPhoto
veja aqui> http://www.williambrito.com/teste
-
p.s: coloquei codigo somente na foto com
logo da nike. clike nela pra vc ver…
-
Em que eu errei aguardo ajuda!

W.B

_

Gabriel disse...

Olá William,

Estava em viagem por isso somente consegui responder agora.

Verifiquei o endereço que me passou, se não resolveu ainda, o problema é que você primeiro inclui a biblioteca prettyPhoto e depois a jQuery, como a prettyPhoto depende da jQuery, você deve incluir esta última primeiro.

Qualquer dúvida, estou a disposição.

Atenciosamente,

Gabriel Oliveira