Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Asociar eventos tras replaceWith en JQuery

Estas en el tema de Asociar eventos tras replaceWith en JQuery en el foro de Jquery en Foros del Web. Buenas noches, Estoy intentando utilizar la función replaceWith de JQuery sobre un span con un texto. El texto lo reemplazo por un input de tipo ...
  #1 (permalink)  
Antiguo 05/05/2013, 13:14
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Asociar eventos tras replaceWith en JQuery

Buenas noches,

Estoy intentando utilizar la función replaceWith de JQuery sobre un span con un texto. El texto lo reemplazo por un input de tipo text y un botón, todo ello usando el evento click sobre el span.

Una vez reemplazado, hasta ahí todo correcto.

El problema viene cuando le enlazo al evento click del botón una función para volver a reemplazar el contenido del input por un span como al principio pero con el contenido del input, pero el botón no hace nada.

He leído algo de que no es posible vincular a ese botón un evento para que actúe, pero aunque uso la función on.('nombreevento', function(){... no me hace nada.

¿alguien sabe a qué podría deberse?

Os dejo mi código:

Código:
 <div class="span12" id="titulo">
                    <div id="miTitulo"><span>Título editable</span></div>
                </div>
Código:
                <script>
                    $(document).ready(function(){
                        $("div#miTitulo").on("click",function(){
                            var textoTituloEditable = $(this).text();  
                            $(this).replaceWith("<input type='text' value='"+ textoTituloEditable +"'/><span id='boton' class='btn btn-info'>Ok</span>");
                        });
    
                        $("span#boton").on("click",function(){
                            var nuevoTexto = $("div#titulo").find(":text").val();
                            $("div#miTitulo").html("<span>"+nuevoTexto+"</span>");
                        });
                        
                    });
                   
                        
                </script>

Última edición por geofran80; 05/05/2013 a las 13:21
  #2 (permalink)  
Antiguo 05/05/2013, 13:49
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: Asociar eventos tras replaceWith en JQuery

Debes cambiar esto $("span.boton") por span#boton

Otra cosa el codigo dice

Cuando el DOM este listo has esto

Localiza al div con id miTitulo y adjuntale un listener para el evento click
cosas a hacer
...
..
.

Localiza al elemento span con id boton <---Aqui esta el detalle aun no existe este elemento

Otra cosilla En la pagina de jQuery se recomienda ser mas especifico en los selectores

Usa input:text en lugar de :text por que

:text es equivalente a *:text y bueno esto significa que obtiene un arreglo con todos los elementos y luego va comprobando uno por uno y en cambio con

input:text obtiene a los elementos input y luego solo comprueba que sea de tipo texto

Saludos
  #3 (permalink)  
Antiguo 05/05/2013, 14:02
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Respuesta: Asociar eventos tras replaceWith en JQuery

Muchas gracias hackjose.

Sí, lo arreglé porque erré con el # en el post. Pero era la clase boton. Que la agrego con el click sobre el primer span.

De todos modos lo he arreglado dejando el botón fuera oculto y lo muestro cuando hago click sobre el span a editar. Una vez editado y aceptados los cambios, reemplazo dicho span y oculto el botón.

Así podría crearme una plantilla de texto editable como span + botón y cuyo span se reemplaza por un input:text pero el botón queda fuera por lo que no se desactivan los eventos.

Por cierto, gracias por la nota de input:text. Lo tendré en cuenta.

Muchas gracias nuevamente.

Saludos cordiales.
Francisco J.
  #4 (permalink)  
Antiguo 05/05/2013, 14:49
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: Asociar eventos tras replaceWith en JQuery

Tal vez ya conozcas el atributo contenteditable si no checalo te seria muy util, solo que funciona unicamente en navegadores modernos

Saludos
  #5 (permalink)  
Antiguo 05/05/2013, 15:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Respuesta: Asociar eventos tras replaceWith en JQuery

Pues ahora mismo no caigo pero lo chequeare para ver si me es útil.

Gracias nuevamente.

Saludos cordiales.
Francisco J.
  #6 (permalink)  
Antiguo 05/05/2013, 15:52
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Respuesta: Asociar eventos tras replaceWith en JQuery

Vaya no lo conocía, de todos modos no sé si podré tener acceso a un navegador actual además de IE 8.0 ya que es el que usan los usuarios del sistema.

De todos modos lo veré con detenimiento.

Saludos.
Francisco J.

Etiquetas: asociar, eventos, html, input, javascript, tras
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 16:19.