2010-07-01 44 views
4

我希望能夠使用Javascript/jQuery在xhtml textarea中創建一種摺疊類型。例如,假設下面的文字:使用Javascript在TEXTAREA中隱式摺疊

ABC [123] DEF 

我想有[123]減少[]當光標不在它 - 即對於光標|

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

我想要的內容當然,當物品被摺疊時(即當光標離開支架時),並在摺疊時(光標進入支架)恢復。

我對此非常感興趣。

謝謝。

Brian

+1

爲了讓你st藝術,閱讀本SO線程:http://stackoverflow.com/questions/263743/how-to-get-cursor-position-in-textarea – Pointy 2010-07-01 13:50:28

+0

只是一個說明,如果你想做mouseover,不幸的是,這種做法不會工作。它涉及只在點擊時(或打字時)移動的插入符的位置。 – 2010-07-01 13:52:49

+0

尖尖的:這是一個體面的起點。我最近用一個解決方案來解決類似的問題,在textarea中獲取光標位置,該位置適合在IE中使用換行符,這是我在其他任何地方都看不到的地方:http://stackoverflow.com/questions/3053542/how-開始和結束點選擇在文本區域/ 3053640#3053640 – 2010-07-01 14:05:06

回答

2

您可能想看看一些用JavaScript實現的Rich Text Editors。如果您將摺疊視爲內聯樣式的事物(css display:none;},我相信您可以在其語法突出顯示中添加一條規則,以便在無需太多努力的情況下使摺疊工作。

10 jQuery and non-jQuery RTEs

你也可以看看Mozilla的Bespin的項目(http://mozillalabs.com/bespin/)。不能發佈更多的鏈接,小新SO。

0
$(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> 

這應該爲你工作。不是最有說服力的,但提供所需結果

+0

感謝您的想法。雖然這可以摺疊* span **的* mousover *。儘管如此,這並不能解決* textarea **問題中的* caret *問題。 – 2010-08-29 20:33:57