複数のスパンを含むdivがあります。ユーザーがスパンをクリックすると、編集可能になります。この部分は正常に機能していますが、誰かがその中のコンテンツを編集しようとすると、問題が始まります。
- 最初の文字は削除できません
- バックスペースを2回以上押すことはできません。ユーザーは、バックスペースを1回押した後、カーソルをスパンに戻す必要があります。
- 残りの文字が1つしかない場合は削除できますが、スパンは消えます。
これがHTMLです
<div class="entries">
<p class="entry">
<span class="name">Taj</span>
<span class="city">Havelock</span>
<span class="price">10000.00</span>
<span class="updaterow" style="visibility: hidden;"><a href="#">Save</a></span>
</p>
</div>
とJS
$('.entries').on('click','span', function() {
$(this).attr('contentEditable', true);
$(this).siblings('.updaterow').css('visibility','visible');
}).on('focusout','span',function() {
$(this).attr('contentEditable', false);
$(this).siblings('.updaterow').css('visibility','hidden');
});
jsfiddleでも同じことがわかり、どのように機能するかを確認できますhttp://jsfiddle.net/VjUfZ/