Foros del Web » Programando para Internet » Jquery »

Problema selector evento click de jquery

Estas en el tema de Problema selector evento click de jquery en el foro de Jquery en Foros del Web. Buenas noches. Estoy teniendo un problema con un evento click de jquery. Mi codigo del html es... Código: <h3><strong>Delegaciones</strong></h3> <p>Seleccione un país en el listado ...
  #1 (permalink)  
Antiguo 04/09/2008, 17:28
 
Fecha de Ingreso: julio-2006
Ubicación: Desde mi casa
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Problema selector evento click de jquery

Buenas noches.

Estoy teniendo un problema con un evento click de jquery.

Mi codigo del html es...

Código:
<h3><strong>Delegaciones</strong></h3>
<p>Seleccione un país en el listado para ver las delegaciones:</p>
<ul class="delegaciones listaEnlaceEstandar">

<li id="ajaxpais"><a href="/sedes/sede_0001.html">España</a></li>

<li id="ajaxpais"><a href="/sedes/sede_0002.html">Portugal</a></li>

									
</ul>
Y el codigo javascript...

Código:
$(document).ready (function() {
	jQuery("#ajaxpais a").bind("click", function(e) {
	
		e.preventDefault();
		var src = this.href;
		alert(src);		
		//$("div#ajaxsede").load(src);

	});
});
El problema me esta dando en que cuando hago click sobre el enlace <a> de Portugal, no salta el alert de javascript y me manda al sede_0002.html. Mientras que si hago click en España, si salta el evento javascript mostrando el alert.

He probado ya de todo y no consigo que se me asocie el evento a los dos enlaces. ¿Tal vez haya algo por lo que solo se me asocia el evento al primer enlace?

Saludos
  #2 (permalink)  
Antiguo 04/09/2008, 21:40
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: Problema selector evento click de jquery

El problema es que no puedes tener dos id iguales en una misma pagina. Hazlo usando classes. Yo lo lo haría así:

Código HTML:
$(document).ready(function() {
    $('.ajaxpais a').click(function() {
        alert(this.href);
        return false;
    });
})
Código HTML:
<h3><strong>Delegaciones</strong></h3>
<p>Seleccione un país en el listado para ver las delegaciones:</p>
<ul class="delegaciones listaEnlaceEstandar">

<li class="ajaxpais"><a href="/sedes/sede_0001.html">España</a></li>

<li class="ajaxpais"><a href="/sedes/sede_0002.html">Portugal</a></li>

                                    
</ul> 
Si validaras tu página el validador de la W3C te lo diría.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #3 (permalink)  
Antiguo 05/09/2008, 02:55
 
Fecha de Ingreso: julio-2006
Ubicación: Desde mi casa
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema selector evento click de jquery

Tenias razon. Ni me habia dado cuenta.

El problema ahora esta en que cuando hago click en el enlace, me manda directamente a la otra pagina y no la carga por ajax.

¿En principio el metodo preventDefault() no deberia de evitar la llamada del href?

El script es...
Código:
$(document).ready (function() {
	jQuery(".ajaxpais a").bind("click", function(e) {
	
		e.preventDefault();
		var src = this.href;	
		$("div#ajaxsede").load(src);

});

Última edición por kerfer; 05/09/2008 a las 03:20
  #4 (permalink)  
Antiguo 05/09/2008, 07:02
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: Problema selector evento click de jquery

para que no se envíe el enlace dale un 'return false' como lo hice yo en arriba. ademas. lo que quieres es poner el contenido de 'src' en un div no uses load ya que no estas cargando nada externo. usa la funcion 'html()' de JQuery:

Código HTML:
$(document).ready(function() {
  $('.ajaxpais a').click(function() {
    var src = this.href;
    //alert(src);
    $("div#ajaxsede").html(src);
    return false;
  });
})
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
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 01:51.