Неявное сворачивание в TEXTAREA с использованием Javascript

Я хотел бы иметь возможность создать тип свертывания в XHTML textareaс использованием Javascript/ JQuery. Например, с учетом следующего текста:

ABC [123] DEF

Я хотел бы иметь [123] сократить до [] когда курсор не над ним - т.е. для курсора |:

ABC [] DEF|
AB|C [] DEF
ABC [|123] DEF
ABC [12|3] DEF

Я хочу, чтобы содержимое внутри фигурных скобок сохранялось, конечно, когда элемент складывается (т.е. когда курсор выходит из фигурных скобок), и восстанавливается, когда он свернут (курсор входит в фигурные скобки).

Я был бы очень благодарен за мысли об этом.

Спасибо.

Брайан

2 ответа

Возможно, вы захотите взглянуть на некоторые текстовые редакторы, реализованные в JavaScript. Если вы посмотрите на свертывание как на встроенный стиль ( css display:none; }, я уверен, что вы можете просто добавить правило к подсветке их синтаксиса, чтобы свертывание работало без особых усилий.

10 jQuery и не-jQuery RTE

Вы также можете взглянуть на беспозвоночный проект Mozilla ( http://mozillalabs.com/bespin/). Не могу опубликовать больше ссылок, мало новых для SO.

$(function(){
  //Format on load
  $(".folding").html('[]');

  //Wire up load
  $(".folding").mouseover(function(){
    $(this).html('[' + $(this).attr("original") + ']');
  }).mouseout(function(){
    $(this).html('[]');
  });                   
});


<BODY>ABC <span class="folding" original='123'>[123]</span> DEF</BODY>

Это должно работать для вас. Не самый красноречивый, но дает желаемые результаты.

Другие вопросы по тегам