Foros del Web » Programando para Internet » Jquery »

Anular evento href y continuarlo

Estas en el tema de Anular evento href y continuarlo en el foro de Jquery en Foros del Web. Buenas, quiero consultaros lo siguiente. Algo estoy haciendo mal ya que no estoy demasiado puesto en jQuery. Tengo una tabla que se genera dinamicamente con ...
  #1 (permalink)  
Antiguo 23/01/2013, 04:36
 
Fecha de Ingreso: noviembre-2002
Mensajes: 50
Antigüedad: 22 años
Puntos: 0
Anular evento href y continuarlo

Buenas, quiero consultaros lo siguiente. Algo estoy haciendo mal ya que no estoy demasiado puesto en jQuery.
Tengo una tabla que se genera dinamicamente con varias filas. En esas filas hay un enlace para llamar a un cuadro de dialogo que me pregunta si estoy seguro de borrar la fila.
.....
Código:
<tr>
     <td>.</td>.aqui van todas las columnas........<td>.</td>
      <td><a href="{{ path('escuela_delete', { 'id': entity.id }) }}" class="borrar" id="{{entity.id}}" ><i class="icon-remove"></i></a></td>
</tr>
En el codigo jQuery de abajo hago lo siguiente:
- Controlo cuando se pulsa sobre un enlace de tipo borrar
- Paro el href hasta hacer la pregunta
- Hago la pregunta y en caso afirmativo
- Quiero dejar continuar el evento del href

El problema es que siempre me da el primer enlace que aparece en la tablay no de la fila que pulso

Código:
$(document).ready(function(){
	   $("a.borrar").click(function(){ // Click to only happen on announce links
	   	  event.preventDefault();
	      bootbox.confirm("Estás seguro que quieres borrar el alumno?", function(result) {
                if (result) {
   					var link = $(this).attr('href');
					window.location = link;
				}
            });
	   });
});
¿Alguien me puede ayudar a obtener el href correspondiente a la fila que pulso?
  #2 (permalink)  
Antiguo 23/01/2013, 16:41
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 16 años, 5 meses
Puntos: 12
Respuesta: Anular evento href y continuarlo

Como mencionas que las filas las generas de manera dinámica es probable que el evento .click no se aplique a estos elementos estan "muertos", para este caso debemos aplicar alguna otra funcion para "revivir" dichos elementos y tenemos algunas alternativas puedes probar con varias de estas.

// Recomendada
$('container').on('click', 'a.borrar',function(){
//do something
});

// Recomendada
$('container').delegate('click', 'a.borrar',function(){
//do something
});

// No recomendada, deprecated en jQuery 1.9
$('a.borrar').live('click', function(){
// Do somenthing
});

Para usar .on y .delegate necesitas referenciar a partir del contenedor donde se encuentra el elemento al que le aplicaras click, generalmente un div o el mismo table esto ayuda a jquery a tener un punto de referencia desde donde "revivir".

Revisa los metodos .on y .delegate en la pagina de jquery y familiarizate con ellos ya que serán pan de cada día de ahora en adelante.

Saludos.
  #3 (permalink)  
Antiguo 24/01/2013, 06:18
 
Fecha de Ingreso: noviembre-2002
Mensajes: 50
Antigüedad: 22 años
Puntos: 0
Respuesta: Anular evento href y continuarlo

Muchas gracias por tu ayuda.
Lo pondré en práctica

Etiquetas: anular, evento, href
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 00:24.