Foros del Web » Programando para Internet » Jquery »

Bloquear un Evento Jquery

Estas en el tema de Bloquear un Evento Jquery en el foro de Jquery en Foros del Web. Hola compañeros, tenia tiempo que no visitaba el FORO (cuestiones laborales ) Les escribo por que estoy con un problemita que no se por que ...
  #1 (permalink)  
Antiguo 26/07/2013, 10:07
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Pregunta Bloquear un Evento Jquery

Hola compañeros, tenia tiempo que no visitaba el FORO (cuestiones laborales )

Les escribo por que estoy con un problemita que no se por que se me ha complicado, explico:

Tengo una tabla con INFO de Perfil de un usuario, para modifcar los datos de dicho usuario, basta con darle doble click sobre algun elemento de la tabla y modificarlo y al darle enter guardara la modificacion.

Me ha pasado que al darle doble click sobre el <label> cuando aparece el campo de texto, sin querer le volvi a dar doble click y en el campo de texto me borro la info y me coloco esto: " <input id= " no tengo idea de por que pasa esto, entonces quisiera saber si es posible bloquear el evento dblclick de JQUERY, intente hacerlo con PreventDefault pero no me funciono, aqui el codigo:

Código Javascript:
Ver original
  1. $('#cargo').dblclick(function(){
  2.         $("#cargo").html('<input id="new_cargo" type="text"  value="'+$('#cargo').html()+'" >');       
  3.         $("#new_cargo").keydown(function(e){
  4.            var key = e.keyCode || e.which;
  5.            if(key == 13 || key == 9){  
  6.              $("#cargo").html($("#new_cargo").val());
  7.              $.post("act_datos.php",{op:'31', cargo: $("#cargo").html()},function(data){
  8.                  $('#messagecargo').html(data);
  9.                  $("#messagecargo").delay(3000).fadeOut("slow");
  10.               });        
  11.            }
  12.         });  
  13.  
  14.    
  15.     });

Aqui parte de la tabla:

Código HTML:
Ver original
  1. <th height="24">Cargo:</th>
  2.            <td>
  3.              <label id="cargo" style="font-size:16px"><?=$array['us_cargo'];?></label>
  4.              <div id="messagecargo"></div>
  5.            </td>
  6.        </th>


Espero me haya explicado y me puedan ayudar con algo q parece sencillo


Se me olvidaba, coloco aqui otro detalle que tengo, cuando hago una modificacion sale un mensaje lo cual lo oculto luego de 3 segundos, eso lo hago aqui:

Código Javascript:
Ver original
  1. $("#messagecargo").delay(3000).fadeOut("slow");

Resulta que ese mensaje me sale solo una vez, si vuelvo a modificar el mismo campo ya no sale el mensaje, si actualizo la pagina si me vuelve a salir, no se como resolver eso, Gracias

Última edición por mixzplit; 26/07/2013 a las 10:17
  #2 (permalink)  
Antiguo 26/07/2013, 12:33
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Bloquear un Evento Jquery

Te da ese problema porque el label con id="cargo" sigue existiendo y cuando pulsas doble click se sigue ejecutando el evento.

Lo puedes solucionar de varias formas. Yo te dejo una forma que consiste en crear el textbox aparte y ocultar el label y cuando finalices, quitas el textbox y muestras el label.

Aquí puedes ver el ejemplo simplificado:

http://jsfiddle.net/kJ3U9/1/
  #3 (permalink)  
Antiguo 26/07/2013, 14:03
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Bloquear un Evento Jquery

No se por que no lo pense asi jejeje, me funciono correctamente, Gracias alexg88

Etiquetas: Ninguno
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:23.