Mam następujący kod demonstrujący właściwość contenteditable i przycisk, który wprowadzi pogrubiony tekst w akapicie z contenteditable area. Moje pytanie brzmi: jak przywrócić ostrość do miejsca, w którym przerwałam po kliknięciu pogrubionym, jeśli podświetlisz jakiś tekst i klikniesz pogrubioną czcionką, pogrubi ona tekst, ale fokus już tam nie będzie. To samo dzieje się, jeśli nic nie zaznaczysz i klikniesz pogrubioną czcionką, fokus zniknie, a jeśli klikniesz ponownie w miejscu, w którym zostało przerwane, możesz wpisać pogrubione teksty.powrócić do contenteditable po execCommand?
Dziękuję bardzo za pomoc!
<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>
Spowoduje to powiązanie akcji ze zdarzeniem kliknięcia "# bold" za każdym razem, gdy klikniesz akapit, co spowoduje, że program obsługi zostanie powiązany kilka razy. Nie chcesz tego. – Jake
Dodana klasa ".editable", więc wiąże się tylko z paragrafem z tą klasą określoną w znacznikach. – ALFABreezE
Za każdym razem, gdy klikniesz na p.editable, handler będzie związany #bold. Po kliknięciu #bold wszystkie te zostaną uruchomione, co spowoduje, że execCommand będzie uruchamiany wiele razy, a fokus skacze wokół wszystkich kliknięć, które zostały kliknięte. Odpowiedź devongovett dana nie cierpi z powodu tego problemu, ponieważ obsługa #bold jest powiązana tylko raz. – Jake