我正在使用此功能以使用 Safari 和 Chrome 替换 contentEditable div 上的换行符<DIV>New Divs</DIV>
:<BR>
$("#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;
}
}
});
问题是,当我在 an 内输入<UL><LI>Something</LI></UL>
并按“return”键时,我不想得到 a <BR>
,所以我可以继续列表...
如果我在一个LI
元素中,我怎么能创造一个条件让该功能不工作?
用我的答案编辑:
好的,我已经做到了,但是如果您对代码有任何评论,欢迎您:
$("#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 }