Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: NataliaV en 12 Junio 2012, 12:16 pm



Título: funcion on() de jquery no me funciona
Publicado por: NataliaV en 12 Junio 2012, 12:16 pm
hola.. buenas.. tengo un problema con la función on() de jquery..
quiero cargar paginas en un div determinado, y que estas páginas funcionen correctamente. Con esta función va genial.. pero por .... ... (mejor no decirlo)... se modifico el código y ahora no logro hacerlo funcionar..
el codigo es:
$(document).ready(function()
     {
   
   $("#nav li").each(function(event){
    var href = $(this).attr("href");
   $(this).attr({href:" # "});
   $(this).on('click','ul a',function(event){
   event.preventDefault();
   $("#centro").load(href);
   return false;
   });
   });
                        
   });

el menú esta en un div lateral.. y se carga en otro.. los nombres estan bien..

me podeis echar una mano? Gracias


Título: Re: funcion on() de jquery no me funciona
Publicado por: #!drvy en 12 Junio 2012, 15:42 pm
Coges la variable href en el lugar equivocado. Tienes que pillarla cuando el usuario hace click sobre el enlace porque si no, le estas diciendo a jquery que coga el atributo href de un li... xD

Código
  1. $(document).ready(function(){
  2.  $("#nav li").each(function(event){
  3.    $(this).on('click','ul a',function(event){
  4.      event.preventDefault();
  5.      var href = $(this).attr("href");
  6.      $(this).attr({href:" # "});
  7.      $("#centro").load(href);
  8.      return false;
  9.    });
  10.  });
  11. });

Saludos


Título: Re: funcion on() de jquery no me funciona
Publicado por: NataliaV en 17 Junio 2012, 02:54 am
hola.. muchas gracias por responderme..
me cargan las páginas en donde queria, pero ahora me pasa una cosa que antes no me pasaba.. y es, que en alguna una página, el efecto mostrar/ocultar me va, y en otra, el mismo efecto no lo hace.. y es que ahora, si doy dos veces al mismo link (no seguidas).. pues ya no me va..y me da error:
Uncaught Error: Syntax error, unrecognized expression: #
m.error
m.filter
m
c.querySelectorAll.m
f.fn.extend.find
f.fn.extend.load.f.ajax.complete
f.Callbacks.o
f.Callbacks.p.fireWith
w
f.support.ajax.f.ajaxTransport.send.d

...a mi esto me esta volviendo chibirita ya..  :P

pd.de nuevo gracias por contestar..


Título: Re: funcion on() de jquery no me funciona
Publicado por: #!drvy en 17 Junio 2012, 03:10 am
Es normal, porque cambias el valor del attr a # cosa que no es valida y al segundo intento falla.
Para solucionarlo puedes quitar el $(this).attr({href:" # "}); Ya que el prevent default ya hace todo lo necesario.


Saludos


Título: Re: funcion on() de jquery no me funciona
Publicado por: NataliaV en 17 Junio 2012, 03:21 am
que besazo te pegaba ahora madre...  ;D

ahora voy a buscar porque me funciona en una pagina el slideDown en una página y en la otra no...

Gracias gracias gracias.. jeje

besos


Título: Re: funcion on() de jquery no me funciona
Publicado por: NataliaV en 17 Junio 2012, 03:45 am
voy a explicarme mejor...

cargo las páginas en un div.. dos de ellas tienen capas ocultas que se van abriendo y cerrando dependiendo de lo que el usuario quiera ver..

bueno.. pues pulso el link del menú.. se carga la página en el div.. y pulso (en la página recien cargada) otro link que me muestra una lista de cocteles  :silbar: .. doy a otro link del menú, y en la página que se carga hay varios enlaces que muestran distintas capas según la opción que tu quieras.. pués en esta página no funciona el mostrar capa..  :o .. los códigos son identicos (exceptuando el nombre de la capa claro, pero igualitos, y están en el mismo archivo misfunciones.js..

alguien sabe porque puede pasar esto?
la ruta está bien (las páginas en el mismo directorio)...
no veo ningún error de escritura...
...
...


Título: Re: funcion on() de jquery no me funciona. Solucionado!
Publicado por: NataliaV en 17 Junio 2012, 04:14 am
ya está.. arreglado...

he separado las funciones, las he pasado a otro archivo y ya funciona.. eso si.. lo he tenido que sacar del directorio del html.. (no se por que.. pero asi funciona..

Gracias a todos!
besosss


Título: Re: funcion on() de jquery no me funciona
Publicado por: NataliaV en 17 Junio 2012, 04:25 am
jooooooooroba..jejejej

pues no está solucionado del todo... en el explorer no me va... ... ... :huh:...
lo dejo por hoy..

si alguno teneis idea de porque puede ser.. no os corteis ... podeis dar vuestra opinión..

 :-* :-*


Título: Re: funcion on() de jquery no me funciona
Publicado por: #!drvy en 17 Junio 2012, 13:48 pm
Podrías dar un ejemplo de lo que pasa? Es que no puedo adivinar el código que tienes para la animación y todo eso =)

PD: Ejemplo: parte del código o subirlo algún sitio para verlo.. xD

Saludos


Título: Re: funcion on() de jquery no me funciona
Publicado por: NataliaV en 17 Junio 2012, 16:25 pm
hola!
Pues está arreglado y no he hecho nada.. supongo que simplemente tenia el pc, el xamp, el ie.. cansaditos ya... acabo de mirarlo y ya funciona  ;-)

por cierto.. el código era simplemente:

en fun.js
$(document).ready(function()
     {

 
$("#mindividual").click(function(event)
  {
   $("#opind").slideDown(2000);
   });
});

en el html:
<head>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../fun.js"></script>
</head>
<body>
...
<div class="opcion1"><a href="#" id="mindividual">- MOMENTO INDIVIDUAL </a></div>
...
</body>

...ya ves tú que complicación jeje..

Muchas gracias por tu ayuda..
besos...
pd. Cuando la publique te mandaré una invitación para que la veas...  :-*