Summernote: установить фокус после инициализации
Summernote дает вам возможность дать фокус редактору при его создании, передавая эти параметры:
$('#summernote').summernote({
focus: true
});
но после инициализации, похоже, вы не можете сосредоточиться на textarea, нажав кнопку или подобное. Я пробовал несколько способов, но безуспешно.
кто это сделал?
4 ответов
вернувшись к этой проблеме и попробовав много решений, я пришел к одному, который работает:
$('.note-editable').trigger('focus');
запуск события через jQuery работает, но с помощью
$(document).ready(function () {
$.fn.extend({
placeCursorAtEnd: function () {
// Places the cursor at the end of a contenteditable container (should also work for textarea / input)
if (this.length === 0) {
throw new Error("Cannot manipulate an element if there is no element!");
}
var el = this[0];
var range = document.createRange();
var sel = window.getSelection();
var childLength = el.childNodes.length;
if (childLength > 0) {
var lastNode = el.childNodes[childLength - 1];
var lastNodeChildren = lastNode.childNodes.length;
range.setStart(lastNode, lastNodeChildren);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
return this;
}
});
});
затем:
$('.note-editable').click(function(){
//$('#summernote').summernote('focus');
$(this).placeCursorAtEnd();
});
①focus на нажмите Ocusfocus в конце содержания
Она работает на мобильном устройстве тоже
Вы можете установить фокус, поставив акцент на редактируемый div используется Summernote:
document.querySelectorAll(".note-editable").focus();
или с помощью JQuery
$('#summernote').find('.note-editable').focus();