用Javascript实现文本区域的隐式折叠
我希望能够使用Javascript/jQuery在xhtml用Javascript实现文本区域的隐式折叠,javascript,jquery,textarea,folding,Javascript,Jquery,Textarea,Folding,我希望能够使用Javascript/jQuery在xhtmltextareas中创建一种折叠类型。例如,给定以下文本: ABC [123] DEF 当光标不在其上时,我希望将[123]减少到[],即对于光标|: ABC [] DEF| AB|C [] DEF ABC [|123] DEF ABC [12|3] DEF 当然,我希望大括号内的内容在项目折叠时(即光标退出大括号时)被保留,在项目折叠时(光标进入大括号时)被恢复 我非常感谢你对这件事的想法 多谢各位 Brian您可能希望了解一些用
textarea
s中创建一种折叠类型。例如,给定以下文本:
ABC [123] DEF
当光标不在其上时,我希望将[123]
减少到[]
,即对于光标|
:
ABC [] DEF|
AB|C [] DEF
ABC [|123] DEF
ABC [12|3] DEF
当然,我希望大括号内的内容在项目折叠时(即光标退出大括号时)被保留,在项目折叠时(光标进入大括号时)被恢复
我非常感谢你对这件事的想法
多谢各位
Brian您可能希望了解一些用JavaScript实现的富文本编辑器。如果将折叠视为一种内联样式(css display:none;}),我相信您可以在语法高亮显示中添加一条规则,以使折叠工作起来,而无需付出太多努力 您还可以看看Mozilla的bespin项目()。无法发布更多链接,这有点新鲜。
$(function()){
$(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>
//加载格式
$(“.folding”).html(“[]”);
//接线负载
$(“.folding”).mouseover(函数(){
$(this.html('['+$(this.attr(“原始”)+']');
}).mouseout(函数(){
$(this.html(“[]”);
});
});
ABC[123]DEF
这应该对你有用。虽然不是最有说服力的,但能提供所需的结果。要开始,请阅读以下内容:注意,如果你想使用鼠标悬停,很遗憾,这种方法不起作用。它涉及插入符号的位置,它只在单击(或键入时)时移动.Pointy:这是一个不错的起点。我最近回答了一个类似的问题,并提出了一个解决方案,可以在IE中正确使用换行符的文本区域中获取光标位置,这是我在其他任何地方都没有见过的:@Pointy,Tim Down:谢谢,这是一个有用的参考。我一直在使用jQuery的FieldSelection插件,这是一个有用的b例如。下一步(即折叠)似乎还没有开发出来。@Michael Mior:我只是在寻找基于文本光标移动的展开。谢谢你的想法。虽然这允许折叠鼠标悬空。但这并不能解决文本区域一部分的插入符号问题。