2011-02-02 13 views

Respuesta

6

$("div[contentEditable]").blur() para desenfocar todos los elementos de contenido editable.

$("#elementId").blur() para desenfocar un elemento por su id.

+0

Creo que, técnicamente, debe ser * $ ('div [contentEditable = "true"]'). Blur() * – KOGI

+0

'div [contentEditable]' comprueba la presencia del atributo contentEditable, 'div [contentEditable = "verdadero"] 'verifica si ese atributo se establece en verdadero. Cualquiera de los dos funcionará en la mayoría de los casos. Solo debe ser explícito si establece explícitamente contentEditable en algún otro valor para deshabilitarlo. –

+1

'div [contentEditable! =" False "]' probablemente sea su mejor opción por simplicidad. – zzzzBov

3

La solución sugerida por Roman Resh no funciona cuando hace clic en el elemento y presiona enter inmediatamente después. No se desdibujará, sino que creará saltos de línea/divs.

Es posible evitar este comportamiento por completo.

See this fiddle

$('<div class="temp-contenteditable-el" contenteditable="true"></div>') .appendTo('body').focus().remove();

34

me gustaría añadir otra solución que se basa en la respuesta de Omnicon que es correcta por cierto. Tengo forked his fiddle and updated it.

El truco es eliminar todos los rangos después de llamar a la falta de definición:

$(".editable").blur(); 
window.getSelection().removeAllRanges(); 
+0

Esto funcionó para mí, gracias. Omnicon no funcionó para mí, en parte porque desplazó todo el documento hasta el fondo cuando se lo invocaba. – MSC

+0

El removeAllRanges() funciona muy bien, anteriormente utilizo ony $ (". Editable"). Blur(); y el elemento contentEditable todavía no se desharía de la selección. ¡Gracias! –

+0

¡Gracias por la solución! 'window.getSelection(). removeAllRanges();' hace el truco - sin él editable sigue activo y el siguiente 'e.codeKey == 13' regresa agregando una nueva línea. –

0

Al añadir a todas las respuestas, cuando se usa algo como

$(".editable").blur() 

pensar borrando sólo se centra, como

$(".editable:focus").blur() 

Si no puede entrar en buenos problemas a veces

Cuestiones relacionadas