Ich habe den folgenden Code demonstriert zufrieden stellende Eigenschaft und eine Schaltfläche, die Fett in den Absatz mit contenteditable Bereich einfügen wird. Meine Frage ist, wie man den Fokus dorthin zurückbringt, wo ich aufgehört habe, nachdem ich auf Fett geklickt habe, wenn man einen Text hervorhebt, und auf fett klickt, er wird diesen Text fett formatieren, aber der Fokus wird nicht mehr da sein. Dasselbe passiert, wenn Sie nichts auswählen und auf Fett klicken, der Fokus wird weg sein und wenn Sie dort klicken, wo Sie aufgehört haben, können Sie fett formatierte Texte eingeben.Rückkehr Fokus nach Contenteditable nach ExecCommand?
Vielen Dank für Ihre Hilfe!
<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>
Dadurch wird die Aktion jedes Mal, wenn Sie auf einen Absatz klicken, mit dem Klickereignis '# bold' verknüpft, wodurch der Handler mehrmals gebunden wird. Das willst du nicht. – Jake
Die Klasse ".editable" wurde hinzugefügt, sodass sie nur an einen Absatz mit der im Markup angegebenen Klasse bindet. – ALFABreezE
Jedes Mal, wenn Sie auf eine p.editable klicken, wird ein Handler an #bold gebunden. Wenn Sie auf #bold klicken, werden alle diese Befehle ausgelöst, was dazu führt, dass execCommand mehrmals ausgeführt wird und der Fokus auf allen p.editables liegt, auf die geklickt wurde. Die Antwort, die devongovett gab, leidet nicht unter diesem Problem, weil der # bold-Handler nur einmal gebunden wird. – Jake