製作類似 facebook, G+的使用者自動完成效果- jquery.mentionsInput
plugin 位置
jquery.mentionsInput
最近的一個需求,就是要完成類似 facebook 和 g+ 的一個效果: 在編輯的時候按了"@",可以有提示列表跑出來,進而選擇要tag的人,這樣可以減少打字的時間和避免打錯的情況發生。
因為這個需求才去研究結構,發現要做這個UI,他會分成兩段,上面是可以輸入內容的textarea,下面則是一層會根據textarea變化的div,在偵測輸入"@"後,用ajax撈出建議的內容,確認後會把內容同時丟到textarea和div內,並在div那層加上標註的底色。
不過要全部實作有點辛苦,找到plugin就節省很多時間了。
然後照他的範例使用就好了,但我整包下載後出現一個問題,就是input的欄位高度會亂跳,我有在js跟css的部分做一些調整。
存到資料庫我就存html的部分。
然後要從資料庫把值取回來再編輯,就把html抓回來,html的部分直接丟到div內,處理掉tag後丟回textarea內就可以正常呈現了
好用的工具,有需要的可以試試看。
jquery.mentionsInput
最近的一個需求,就是要完成類似 facebook 和 g+ 的一個效果: 在編輯的時候按了"@",可以有提示列表跑出來,進而選擇要tag的人,這樣可以減少打字的時間和避免打錯的情況發生。
因為這個需求才去研究結構,發現要做這個UI,他會分成兩段,上面是可以輸入內容的textarea,下面則是一層會根據textarea變化的div,在偵測輸入"@"後,用ajax撈出建議的內容,確認後會把內容同時丟到textarea和div內,並在div那層加上標註的底色。
不過要全部實作有點辛苦,找到plugin就節省很多時間了。
- <script src='http://documentcloud.github.com/underscore/underscore-min.js' type='text/javascript'></script>
- <script src='js/plugins/jquery.events.input.js' type='text/javascript'></script>
- <script src='js/plugins/jquery.elastic.js' type='text/javascript'></script>
- <script src='js/plugins/jquery.mentionsInput.js' type='text/javascript'></script>
然後照他的範例使用就好了,但我整包下載後出現一個問題,就是input的欄位高度會亂跳,我有在js跟css的部分做一些調整。
存到資料庫我就存html的部分。
- $content=$(".mentions").html();
然後要從資料庫把值取回來再編輯,就把html抓回來,html的部分直接丟到div內,處理掉tag後丟回textarea內就可以正常呈現了
- $input_con="<div>hello <strong><span>Kenneth Hulthin</span></strong> <br>how are you.</div>";
- //因為要在textarea正常呈現,所以用\n取代<br>
- $input_textarea=$input_con.replace("<br>","\n");
- //去除html的tag
- function RemoveHTML( strText ) {
- var regEx = /<[^>]*>/g;
- return strText.replace(regEx, "");
- }
- $input_textarea=RemoveHTML($input_textarea);
- //再把值丟回去就完成了
- $(".mentions").html($input_con);
- $(".mention").val($input_textarea);
好用的工具,有需要的可以試試看。
留言