Ajuda a entender sintaxe javascript (jQuery)

6 respostas
C

Olá pessoal, eu arranho javascript, uso EL em páginas JSP, porém enquanto estava vendo alguns exemplos de jQuery, encontrei alguns problemas a entender a sintaxe em sí, segue o código:

$(document).ready(function(){
   $("a").click(function(event){
     alert("Thanks for visiting!");
   });
 });

O que realmente acontece aqui? Um statement $(algo) significa exatamente o que? É passada uma função por parametro para outra função, como isso funciona na prática?

Se puderem me esclarecer essas coisas eu agradeco (:

6 Respostas

E

Eu não lembro todas as possibilidades (nem são tantas, é que quase não uso jQuery) do $(), mas a função dele é “pegar” um ou mais objetos.

No caso, quando você faz $(document) está pegando o objeto document, e a instrução .ready(function) associa o onload do document à função que você passou.
No seu exemplo, essa função que você passou vai obter todos os elementos $(“a”) (as âncoras, seria como o document.getElementsByTagName(“a”)), e ao evento onclick, vai associar um alert(“Thanks for visiting!”);

Você pode passar como parâmetro para o $(), nomes de tags, id’s de componentes(indicados com # no começo), nomes de classes (indicados com . no começo)

por exemplo, se eu fizer $(“div > .minhaclasse”) vou pegar os elementos .minhaclasse que estão dentro de um elemento div.

Esse link vai te explicar melhor:http://api.jquery.com/jQuery/

C

É que o que fica confuso pra mim é que em JSP eu uso ${} como Expression Language. O $() seria parte do próprio javascript mesmo? Não tem nada a ver com EL?
O que realmente mais me confunde é uma function sendo passada por parâmetro.

E

o $() é do jQuery (na verdade, é a própria classe jQuery), que é uma biblioteca javascript. Ele não tem nada a ver com o EL, e se você quiser, você pode mudar a referência dele de $ para outro nome qualquer (por exemplo, se você tem alguma outra biblioteca que use um objeto/classe com esse nome).

Como sendo javascript, ele roda no cliente, o EL roda no servidor (isso vc sabe, rsrsr)

E sobre as funções serem passadas como parâmetro, que eu saiba só o java não tem esse recurso. Se me lembro bem, C, C++, .net, javascript, delphi, pascal, etc… tem ponteiro para função (se não me engano, chamam de Delegate), mas é uma prática mais antiga, da programação estruturada, eu prefiro, quando necessário, passar um objeto ou uma classe que herde uma determinada classe abstrata e possua esse recurso.

C

evefuji:
o $() é do jQuery (na verdade, é a própria classe jQuery), que é uma biblioteca javascript. Ele não tem nada a ver com o EL, e se você quiser, você pode mudar a referência dele de $ para outro nome qualquer (por exemplo, se você tem alguma outra biblioteca que use um objeto/classe com esse nome).

Como sendo javascript, ele roda no cliente, o EL roda no servidor (isso vc sabe, rsrsr)

E sobre as funções serem passadas como parâmetro, que eu saiba só o java não tem esse recurso. Se me lembro bem, C, C++, .net, javascript, delphi, pascal, etc… tem ponteiro para função (se não me engano, chamam de Delegate), mas é uma prática mais antiga, da programação estruturada, eu prefiro, quando necessário, passar um objeto ou uma classe que herde uma determinada classe abstrata e possua esse recurso.

Então $ é do próprio jQuery? Interessante.

Me desculpe por postar isso aqui no fórum, já que o foco daqui parece mais “troubbleshoting”, mas eu estudei javascript nos artigos do w3schools e não aprendi o suficiente para entender isso.

O caractere $ refere-se a que exatamente? a uma function?

G

No caso do JQuery o $ é usado na chamada do contrutor.

no seu exemplo:

$(document).ready(function(){  
       $("a").click(function(event){  
         alert("Thanks for visiting!");  
       });  
    });

a chamada $(“a”) se refere a todos elementos (tags) a da página html, com isso consegue chamar uma function do elemento no caso o click do link.

Dê uma olhada nesse link http://www.livrojquery.com.br/jq2/download.php do livro do Maujor, tem muita coisa interessante lá.

flw!

G

Aprender JQuery é uma experiência muito enriquecedora, pois te leva a aprender também alguns dos recursos mais interessantes do javascript, e como deixar de programar do jeito “tutorial” para programar do jeito “legal” .

Alguns conceitos usados o tempo todo no JQuery, e que vale a pena dar uma olhada:
JSON (notação para criação de objetos)
Referências a função e closures

Dê uma olhada neste documento: https://developer.mozilla.org/en/A_re-introduction_to_JavaScript . Muito bom!

E sobre o $ do jquery:
Assim como no Java, em javascript é perfeitamente legal ter uma função com nome $
O Jquery usa essa função como um alias para sua hiper-mega-função jQuery(), que constrói instâncias de objetos jQuery. Isso já foi bem explicado ao longo deste tópico, não precisa entrar em detalhes, só estou querendo dizer que $(document) é um atalho para jQuery(document) . Serve para tornar a programação mais “fluida”.

Criado 16 de agosto de 2011
Ultima resposta 16 de ago. de 2011
Respostas 6
Participantes 4