elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  no consigo que funcionen los eventos jquery
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: no consigo que funcionen los eventos jquery  (Leído 2,073 veces)
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
no consigo que funcionen los eventos jquery
« en: 26 Octubre 2013, 20:54 pm »

hola a todos ¿qué tal?

tengo un problemilla con el evento keyup de jquery: no es llamado si quiera... :S
este es mi formulario:
Código
  1. <form method="post" id="search-form">
  2.    Search for:
  3.    <input id="searched-word" name="searched-word" />
  4.    <input id="btnSearch" class="btnSearch" name="btnSearch" type="button" value="Search" class="btnSearch"
  5.           onclick="javascript:buscar($('#searched-word').val());" />
  6. </form>
  7.  

y aquí el archivo js (resalto en negrita la parte que no me funciona):
Código
  1. $(document).ready(function() {  
  2.    $('.menu li a').click(function() {
  3.  
  4.         /* Muestro una animación de carga */
  5.        ($('.content')).addClass("loading");
  6.        ($('.modal')).css('display', 'block');
  7.  
  8.        /* Cambio la pestaña activa */
  9.        $('.menu li a').removeClass('active');
  10.        $(this).addClass('active');
  11.  
  12.        /* Y cargo en el contenedor la página que se esté pìdiendo */
  13.        $('#contenido').load($(this).attr('destino'));
  14.  
  15.        /* Quito la animación */
  16.        ($('.modal')).css('display', 'none');
  17.        $('.content').removeClass("loading");
  18.  
  19.        return false;
  20.    });
  21.  
  22.    [b]$("#searched-word").keyup(function( event ) {
  23.        alert( event );
  24.    }).keydown(function( event ) {
  25.        if ( event.which == 13 ) {
  26.            event.preventDefault();
  27.        }
  28.    });[/b]
  29.  
  30. });
  31.  
  32.  
  33. function buscar(palabra){
  34.    if(palabra.length > 0){
  35.        var parametros = {
  36.            "searched-word" : $('#searched-word').val()
  37.        };
  38.        $.ajax({
  39.            data:  parametros,
  40.            url:   'search.php',
  41.            type:  'post',
  42.            beforeSend: function () {
  43.                $("#resultado").html("Searching. Please, wait.");
  44.            },
  45.            success:  function (response) {
  46.                $("#resultado").html(response);
  47.            }
  48.        });
  49.  
  50.    }
  51.    else{
  52.        alert('You must write something to search for!');
  53.    }
  54. }
  55.  

Básicamente lo que quiero es controlar que si se pulsa enter no se haga submit del formulario para que no se recargue la página, porque estoy cargando los resultados por ajax en la misma página...
a ver si me podéis echar un cable.

he probado llamando al evento por id ($("#searched-word").keyup(function( event )) y por clase ($(".searched-word").keyup(function( event )) pero nada, ni si quiera se llama al evento.

por cierto, ya que estoy, el evento de arriba (el del click del menú) sólo me funciona si lo pongo como una clase, si lo pongo por id tp me funcionaba...

Gracias


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: no consigo que funcionen los eventos jquery
« Respuesta #1 en: 27 Octubre 2013, 19:29 pm »

El código tal cual esta debe funcionar. Pero si generas ese formulario por ajax seguramente no funcionara por el tema de DOM cache.
Tienes que hacerlo de otra forma..

Código
  1. $("body").on('keyup','#searched-word',function(event){
  2. alert(event);
  3. }).on('keydown','#searched-word',function(event){
  4. if (event.which == 13) {
  5. event.preventDefault();
  6. }
  7. });

Citar
por cierto, ya que estoy, el evento de arriba (el del click del menú) sólo me funciona si lo pongo como una clase, si lo pongo por id tp me funcionaba...

Lo mismo, si lo generas por ajax usa on sobre el body y indica el elemento tal y como se muestra en el código que te deje.

Saludos


« Última modificación: 27 Octubre 2013, 19:31 pm por @drvymonkey » En línea

|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: no consigo que funcionen los eventos jquery
« Respuesta #2 en: 27 Octubre 2013, 20:10 pm »

Perfecto @drvymonkey, muchas gracias! :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no consigo que funcionen correctamente
Juegos y Consolas
hindy 6 2,680 Último mensaje 1 Septiembre 2005, 21:22 pm
por Joker_dxz
¿Scrip que funcionen en Habbo.es 100%?
Scripting
Josean94 2 3,753 Último mensaje 4 Julio 2011, 13:56 pm
por Josean94
on() de jquery+htaccess+urls amigables... no consigo hacerlo...
Desarrollo Web
NataliaV 3 3,227 Último mensaje 17 Septiembre 2012, 20:34 pm
por MinusFour
[Ayuda] Usar 2 Jquery al mismo tiempo - Usar 2 veces jquery
Desarrollo Web
Graphixx 5 8,374 Último mensaje 19 Diciembre 2012, 17:17 pm
por #!drvy
[jQuery]capturar eventos de elementos creados dinamicamente
Desarrollo Web
[u]nsigned 2 2,489 Último mensaje 26 Octubre 2014, 20:34 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines