Evite la función createElement si está dentro de un elemento <LI> (contentEditable)
Estoy usando esta función para reemplazar<DIV>New Divs</DIV>
con<BR>
en líneas de corte en contenido Divs editables usando Safari y Chrome:
$("#form_description").live("keypress", function(e){
if (e.which == 13) {
if (window.getSelection) {
var selection = window.getSelection(),
range = selection.getRangeAt(0),
br = document.createElement("br");
range.deleteContents();
range.insertNode(br);
range.setStartAfter(br);
range.setEndAfter(br);
range.collapse(false);
selection.removeAllRanges();
selection.addRange(range);
return false;
}
}
});
l problema es que cuando escribo dentro de una<UL><LI>Something</LI></UL>
y presiono la tecla "volver", no quiero obtener una<BR>
, así puedo continuar con la lista ...
¿Cómo podría crear una condición para que esa función no funcione si estoy dentro de unLI
elemento?
EDITAR CON MI RESPUESTA:
Ok, he logrado hacerlo, pero si tienes algún comentario sobre el código, eres bienvenido:
$("#form_description").live("keypress", function(e){
if (e.which == 13) {
node = document.getSelection().anchorNode;
nodeName = node.parentNode.nodeName.toLowerCase();
if ((nodeName != "li") && (nodeName != "blockquote")) {
... etc }