2009-10-22 32 views
6

Khi nhấn enter trong contenteditable trong chrome, một div được chèn vào. Điều này cản trở việc đánh dấu của tôi, tôi cần nó là một br.jquery contenteditable enter "Làm cách nào để kích hoạt chuyển đổi khi người nào đó nhấn enter?"

Tôi biết rằng chuyển đổi-nhập là một br. Cách tốt nhất để giải quyết vấn đề là gì?

Cảm ơn.

Cải thiện câu hỏi: Làm cách nào để kích hoạt chuyển đổi khi người nào đó nhấn enter?

Tôi đã thử viết một cái gì đó như thế này:

$(document).keyup(function hotkeys(e) { 
    if (e.which == 13) 
    { 
     e = jQuery.Event("keydown") 
     e.which = 16; 
     $(document).trigger(e); 
     e.which = 13; 
     $(document).trigger(e); 
     alert("trigger"); 
    } 
}); 

Nó không làm việc.

Cảm ơn.

Trả lời

0

Giả sử rangy.js,

$('#myeditelement').on('keydown', function(ev){ 
    if (ev.which === 13) { insertNewLine(ev) } 
}) 

sau đó,

function insertNewLine(ev){ 
    var nodeA, nodeB, sel, range 

    if (ev.stopPropagation) { ev.stopPropagation() } 
    if (ev.preventDefault) { ev.preventDefault() } 

    sel = rangy.getSelection() 
    range = sel.getRangeAt(0) 

    range.deleteContents() 
    nodeA = document.createElement('br') 
    range.insertNode(nodeA) 
    range.setStartAfter(nodeA) 
    nodeB = document.createElement('span') 
    range.insertNode(nodeB) 
    range.selectNodeContents(nodeB) 
    sel.removeAllRanges() 
    sel.addRange(range) 
    sel.collapseToEnd() 
    } 

Tested trong Chrome, Opera, Edge như của tháng mười một năm 2017.

Các vấn đề liên quan