Предыдущий элемент выбора диапазона jquery на contenteditable = false

У меня есть этот фрагмент:

<div contenteditable="true"> father
      <a contenteditable="false" href="#"> myLink </a>
</div>

Моя проблема в том, что если я поставлю каретку после

</a> 

и я пытаюсь удалить html-тег myLink, он не работает в firefox, но работает в chorme, opera, safari и explorer. С другой стороны, если в firefox я выбираю

<a contenteditable="false" href="#"> myLink </a>

а затем удалите его с помощью Backspace, он работает !.

Возможный обходной путь Это выбор диапазона элемента

<a contenteditable="false" href="#"> myLink </a>

программно, когда пользователь нажимает клавишу возврата на клавишу.

Как я могу сделать это в jquery? Если курсор курсора находится после

</a>

и пользовательская цифра backspace, которую я хочу выбрать

<a contenteditable="false" href="#"> myLink </a>

и удалите этот узел.


person paganotti    schedule 31.12.2011    source источник


Ответы (1)


Добавьте тег span с contenteditable = true, как показано ниже,

<a contenteditable="false" href="#"><span contenteditable="true"> myLink </span></a>

Проверьте jsFiddle здесь,

Я тестировал его в FF, IE 8 и Chrome и смог удалить с помощью Backspace, но пользовательский опыт отличается в FF и других браузерах.

Я не уверен, что это лучший способ сделать это.

Изменить: похоже, что на это уже был дан ответ здесь

person Selvakumar Arumugam    schedule 31.12.2011