Konrad корректен. В случае включения непрерывных диапазонов целых чисел (например, где у Вас есть случай 0, случай 1, случай 2.. случай n), компилятор может сделать что-то еще лучше, потому что это не должно даже создавать хэш-таблицу; это просто хранит массив указателей функции, и таким образом может загрузить его цель перехода в постоянное время.
Вы можете сохранить последний выбранный элемент в переменной, а затем вызвать для него .focus () после выполнения .execCommand . Что-то вроде этого, я полагаю:
$(function(){
$('p.editable').click(function() {
var clickedItem = $(this);
clickedItem.attr('contenteditable', true).focus();
$('#bold').click(function (){
document.execCommand('bold', false, true);
clickedItem.focus();
});
});
});
Таким образом вы также можете удалить атрибут "contenteditable"
из разметки ...
HTH
HTML:
<button onclick="doRichEditCommand('bold')" style="font-weight:bold;">B</button>
JavaScript:
function doRichEditCommand(aName, aArg){
getIFrameDocument('editorWindow').execCommand(aName,false, aArg);
document.getElementById('editorWindow').contentWindow.focus()
}
Ссылка может вам помочь:
https : //developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla
Вы можете просто использовать функцию jQuery .focus (), чтобы сфокусировать его. Это должно работать:
var current;
$(function(){
$("p[contenteditable]").focus(function() {
current = this;
});
$('#bold').click(function (){
document.execCommand('bold', false, true);
$(current).focus();
});
});
Это просто отслеживает текущее редактируемое поле каждый раз, когда он фокусируется пользователем, и при нажатии жирной кнопки фокус возвращается обратно в это поле.
ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ .contents()
var current;
$(function(){
$("p[contenteditable]").focus(function() {
current = this;
});
$('#bold').click(function (){
document.execCommand('bold', false, true);
$(current).contents().focus();
});
});