Estoy tratando de crear una edición en línea simple para un cuadro div. Cuando hago clic en el div, meto wrapInner con la etiqueta textarea. Eso lo hace editable. Pero, ¿cómo puedo desenvolver la etiqueta textarea cuando hago clic fuera del campo textarea? Debajo está lo que tengo que no funciona. También debería usar focusout, mouseout, mouseleave o cualquiera de ellos.jquery unwrap Interno
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<div id="test" style="width:300px; height:200px;">
testing
</div>
<script type="text/javascript">
$("#test").live({
dblclick: function() {
$("#test").wrapInner("<textarea/>")
},
mouseleave: function() {
$("#test > textarea").unwrap()
}
});
</script>
Eso funciona, pero cuando ya estás dentro del área de texto y haces clic otra vez, el texto desaparece. Está creando otra instancia en textarea con cada clic doble. – Hussein
Después de probar esto, no hace el trabajo de desenvolver. realmente está eliminando cada etiqueta hija dentro y no solo textarea. Si tenemos una etiqueta span dentro de una palabra, se eliminará la etiqueta span. – Hussein
@alex: ¿estás hablando de etiquetas que se escribieron en el área de texto? [Aquí hay un ejemplo actualizado.] (Http: // jsfiddle.net/drQkp/2 /) Permite HTML, y no utiliza ningún tipo de método 'wrap'. – user113716