У меня есть следующий код, демонстрирующий свойство contenteditable и кнопку, которая добавит жирный текст в абзац с контентной областью. Мой вопрос заключается в том, как вернуть фокус туда, где я остановился после нажатия на полужирный, если вы выделите какой-то текст и нажмите полужирный, он будет выделен для текста, но фокуса больше не будет. То же самое происходит, если вы ничего не выбираете и щелкаете жирным шрифтом, фокус не будет удален, и если вы нажмете, где вы остановились, вы можете напечатать жирный текст.вернуть фокус на контент, доступный после execCommand?
Большое вам спасибо за помощь!
<head>
<style type="text/css">
#container{
width:500;
}
.handle{
float:left;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function(){
$('#bold').click(function(){
document.execCommand('bold', false, true);
});
});
</script>
</head>
<button id="bold">Bold</button>
<div id="container">
<div class="c"><p contenteditable>Some text here asdf asdf asdf asdf asdf asd fasd fsa dfsa df asdf sadf sa dfa sdf sadf asd fsa df sadf asdf asdf asd fas df asdf as </p></div>
<div class="c"><p contenteditable>Some text here asdf asdf asdf asdf asdf asd fasd fsa dfsa df asdf sadf sa dfa sdf sadf asd fsa df sadf asdf asdf asd fas df asdf as </p></div>
</div>
Это будет связывать действие с событием click '# bold' каждый раз, когда вы нажимаете абзац, в результате чего обработчик привязывается несколько раз. Вы этого не хотите. – Jake
Добавлен класс '.editable', поэтому он привязывается только к абзацу с этим классом, указанным в разметке. – ALFABreezE
Каждый раз, когда вы нажимаете p.editable, обработчик будет привязан к #bold. Когда вы нажмете #bold, все они будут уволены, в результате чего execCommand будет запущен несколько раз и начнет фокусироваться на всех щелканьях p.editables. Ответ devongovett дал не страдает от этой проблемы, потому что #bold обработчик связан только один раз. – Jake