Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] crear un a en html y realizar una acción?

Estas en el tema de crear un a en html y realizar una acción? en el foro de Jquery en Foros del Web. Buenas, la verdad es muy dificil de explicar en el titulo es por eso que no se entiende bien la pregunta, bueno les voy a ...
  #1 (permalink)  
Antiguo 26/03/2013, 13:11
Avatar de diegoug  
Fecha de Ingreso: mayo-2011
Ubicación: Colombia
Mensajes: 52
Antigüedad: 12 años, 11 meses
Puntos: 1
Pregunta crear un a en html y realizar una acción?

Buenas, la verdad es muy dificil de explicar en el titulo es por eso que no se entiende bien la pregunta, bueno les voy a contar mejor; tengo un jquery que realiza una acción cuando le hacen click a una a.data, el problema que tengo es que yo creo muchas a con otro jquery y estas a creadas no realizan la acción, pero las que ya estan por defento si lo hacen, son iguales, pero no entiendo es porque no funcionan las nuevas a?

Este crea las a nuevas en el divdata
Código:
        var data_html  = '<a class="data" href="#" value="'data.id'">' + ref.info + '</a>';
        $(data_html).prependTo( $('#divdata') );
ahora este realiza la acción correspondiante a esa a:
Código:
    $('a.data').click( function (){
        $(this).attr('href');
        var idvalue = $(this).attr('value');
        idvalue *= 1;
        // aqui realizo  la acción
        console.log(idvalue);
     });
Como les dije antes, las a que ya estan creadas por defecto si realizan la acción, pero las nuevas creadas por el appendTo no?
__________________
_________________________
Diego Alonso Uribe Gamez
Twitter: @DiegoUG
  #2 (permalink)  
Antiguo 26/03/2013, 13:44
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 10 meses
Puntos: 12
Respuesta: crear un a en html y realizar una acción?

click no funciona en elementos que aparecen en el DOM dinamicamente lo que tienes que hacer es usar .live, .on o .delegate, no te recomiendo usar live asi que deberias usar on.

Un ejemplo del on

Código:
$(inserte_contenedor_padre_aqui).on('click','a.data', function(){
$(this).attr('href');
        var idvalue = $(this).attr('value');
        idvalue *= 1;
        // aqui realizo  la acción
        console.log(idvalue);
});
"$(inserte_contenedor_padre_aqui)" es donde están encerrados todos los a.data que tengas, puede ser un div, un ul entre otros.

Aqui para que te documentes http://api.jquery.com/on/

Saludos.
  #3 (permalink)  
Antiguo 26/03/2013, 14:00
Avatar de diegoug  
Fecha de Ingreso: mayo-2011
Ubicación: Colombia
Mensajes: 52
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: crear un a en html y realizar una acción?

Que buen dato, mi estructura es así:
Código:
      <ul class="alinks" id="ulid">
                    <li>
                        <span><img src="/media/img.png" title="img1"</span>
                        <a class="data" href="#" value="345643">llink</a>
                    </li>
                    <li>
                        <span><img src="/media/img.png" title="img1"</span>
                        <a class="data" href="#" value="343543">llink</a>
                    </li>
                    .......... + li (span,a)
            </ul>
el $(inserte_contenedor_padre_aqui) deberia se así $(#ulid)? o así $(#ulid.li)? como debería ser?

Gracias.

Cita:
Iniciado por Rosencrantz Ver Mensaje
click no funciona en elementos que aparecen en el DOM dinamicamente lo que tienes que hacer es usar .live, .on o .delegate, no te recomiendo usar live asi que deberias usar on.

"$(inserte_contenedor_padre_aqui)" es donde están encerrados todos los a.data que tengas, puede ser un div, un ul entre otros.

Saludos.
__________________
_________________________
Diego Alonso Uribe Gamez
Twitter: @DiegoUG
  #4 (permalink)  
Antiguo 26/03/2013, 14:11
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 10 meses
Puntos: 12
Respuesta: crear un a en html y realizar una acción?

con #ulid bastará.

Etiquetas: javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:39.