Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gremio10

[Resolvido] Problemas com o .delegate()

Recommended Posts

Fala galera, olha só, estou montando um feed de dicas, e tenho um botão de recomendar, por agora é um link, mas depois vou mudar, o problema, eu coloquei o delegate para que ele seja ativado depois da pesquisa e da montagem do HTML vinda do JSON, mas ele não funciona.

 

<script type="text/javascript">
   $( function() {

       $( "body" ).delegate( "a", "click", function() {
           alert();
       } );

       $( ".refresh" ).click( function() {

           var field = $( this ).parent( "form" ).serialize();
           var url = "<?php echo $this->serverUrl( $this->baseUrl( 'feed/json' ) ) ?>";
           var promo = "";
           var recomendar = "";

           $( "#feed" ).html( "" );

           $.getJSON( url, field, function( json ) {

               $.each( json, function( key, value ) {

                   if( value.promo == "promo" )
                   {
                       promo = "<div><img src='<?php echo $this->serverUrl( $this->baseUrl( "imgs/promoted.png" ) ) ?>'></div>";
                   }
                   else
                   {
                       promo = "";
                   }

                   if( value.likes == 0 )
                   {
                       recomendar = "<a href='javascript: void(0);' class='likeLiga'>" +
                                       "Recomendar" +
                                   "</a>";
                   }
                   else
                   {
                       recomendar = "Você já recomendou"
                   }

                   recomendar += " » " + value.total;

                   $( "<li></li>" ).html( 
                                          "<div>" +          

                                              promo +

                                              "<div>" +
                                                   "<a href='<?php echo $this->serverUrl( $this->baseUrl( "user-view/index/user/" ) ) ?>" + value.login + "'>" +
                                                       "<img src='<?php echo $this->serverUrl( $this->baseUrl( "upload/small_" ) ) ?>" + value.file + "'>" +
                                                   "</a>" +
                                              "</div>" +

                                              "<div>" +
                                                   "<h3>" + value.tipo + "</h3>" +
                                                   "<h1>" + value.profissionais_name + " " + value.sobrenome + "</h1>" + 
                                                   "<h2>" + value.curso + " - " + value.cidade + " - " + value.estado + "</h2>" +
                                              "</div>" +

                                              "<div>" +
                                                   "<p>" + value.dica + "</p>" +
                                                   "<div>" + value.date_dica + "</div>" +
                                              "</div>" +

                                              "<div>" +
                                                   "<div>" + recomendar + "</div>" +
                                                   "<div><a href='#' class='likeLiga'>aaaaa</a></div>" +
                                              "</div>" +

                                          "</div>" 
                                       ).appendTo( "#feed" );

               } );

           } );

           return false;

       } );



   } );
</script>

 

o que pode ser ?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso aqui:

href='javascript: void(0);'

não faz sentido, e está incorreto.

 

não existe protocolo javascript.

 

para impedir q o link tenha o comportamento de ir para outra pagina, você deve usar a função

 

.preventDefault() aplicada ao objeto event da ação.

 

aparece algum erro no console ? Ctrl+Shift+J ?

no caso, eu ainda preferiria usar o .live();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não William, não apareceu nenhum erro no console, testei também com o .live(), mesma coisa...

 

isso aqui:

 

href='javascript: void(0);'

 

não faz sentido, e está incorreto.

 

^_^ não sabia, usando o .preventDefault() :joia:

 

agora, o que pode estar interferindo no delegate ?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei cara.. explica qual o problema.

 

você clica e nada acontece ?

pq o alert() ali está vazio ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dessa forma:

 

 

$( "a" ).live("click", function( e ){
   e.preventDefault();

   alert('clickado');
});

se não acontecer nada, deverá ter algum erro no console.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.