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!