Неявное сворачивание в 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; }, я уверен, что вы можете просто добавить правило к подсветке их синтаксиса, чтобы свертывание работало без особых усилий.
Вы также можете взглянуть на беспозвоночный проект 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>
Это должно работать для вас. Не самый красноречивый, но дает желаемые результаты.