Tôi có đoạn mã sau thể hiện thuộc tính có thể chỉnh sửa và một nút sẽ chèn văn bản in đậm vào đoạn văn có vùng có thể chỉnh sửa được. Câu hỏi của tôi là làm thế nào để trở lại tập trung vào nơi tôi rời đi sau khi nhấp vào in đậm, nếu bạn làm nổi bật một số văn bản, và nhấn đậm, nó sẽ in đậm những văn bản đó, nhưng tiêu điểm sẽ không còn ở đó nữa. Điều tương tự cũng xảy ra nếu bạn không chọn bất kỳ thứ gì và nhấp vào in đậm, tiêu điểm sẽ biến mất và nếu bạn nhấp vào nơi bạn đã dừng lại, bạn có thể nhập văn bản in đậm.Trả về tiêu điểm cho contenteditable sau execCommand?
Cảm ơn bạn rất nhiều vì đã giúp đỡ!
<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>
Điều này sẽ liên kết hành động với sự kiện nhấp của '# bold' mỗi khi bạn nhấp vào một đoạn, dẫn đến trình xử lý bị ràng buộc nhiều lần. Bạn không muốn điều đó. – Jake
Đã thêm lớp '.editable', vì vậy nó chỉ liên kết với đoạn với lớp đó được chỉ định trong đánh dấu. – ALFABreezE
Mỗi khi bạn bấm vào một p.editable một handler sẽ bị ràng buộC#bold. Khi bạn nhấp vào #bold tất cả những điều này sẽ được kích hoạt dẫn đến execCommand được chạy nhiều lần và tập trung nhảy xung quanh tất cả các p.editables đã được nhấp. Câu trả lời mà devongovett đưa ra không bị vấn đề này bởi vì trình xử lý #bold chỉ bị ràng buộc một lần. – Jake