페이스북이나 인스타그램처럼, 태그(@) 를 이용하여 친구리스트를 댓글에 불러올 수 있도록 하는 기능을 구현했다 !
Friend 테이블에서 FriendId 만을 추출하여 JSON 형식으로 만들고, 댓글폼에서 @를 입력하면 Ajax 로 리스트를 불러와 띄워주는 예제다.
해당 기능 사용을 위해 caret.js 와 atwho.js 를 같이 사용하였다.
Caret.js Git 주소 : https://github.com/ichord/Caret.js
Atwho.js Git 주소 : https://github.com/ichord/At.js
해당 예제는 국내 포스팅도 없고 검색 데이터도 별로없었지만 내가 사용할 textarea 에 적용이 가능하고, 사용방법이 편한 점에서 공부하고 적용했다 (뿌듯)
* 사용방법 *
1. HTML 상단에 해당 기능 사용을 위한 CDN 추가
(각 JS와 CSS는 Git에서 가져올 수 있지만, 필요하신 분들을 위해 파일공유해요) atwho.css atwho.js caret.js
1 2 3 4 5 6 | <!-- 친구리스트 오토컴플릿에 필요한 Caret.js --> <script src="/javascript/caret.js"></script> <!-- 친구리스트 오토컴플릿에 필요한 atwho.js --> <script src="/javascript/atwho.js"></script> <!--친구리스트 오토컴플릿에 필요한 atwho.css --> <link href="/css/atwho.css" rel="stylesheet"> | cs |
2. BODY 부분에 해당 기능을 활용할 textarea 선언
1 | <textarea id="commContent" name="commContent" placeholder="댓글을 입력해주세요.."}></textarea> | cs |
3. 실제 동작하는 JAVASCRIPT 부분
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //*댓글 입력 $("textarea").on("keyup", function(event){ //autocomplete $(this).atwho({ at: "@", data: null, callbacks: { remoteFilter: function(query, callback){ $.getJSON('/friend/json/listFriendFromBoard/${sessionScope.user.userId}', function(data){ console.log(data); callback(data); }); } } }); //comment submit if (event.which==13) { ... } }) | cs |
반응형
'Frontend > JavaScript' 카테고리의 다른 글
request.getParameter 활용해 새 탭으로 연 창에 값 전달하기 (0) | 2018.07.31 |
---|---|
[Javascript] File Upload 한 뒤 태그에서 이미지 바로 보여주기 (0) | 2018.07.27 |
자바스크립트로 특정 날짜와 현재 날짜 비교하여 x시간전, x분전, x초전 구현하기 (0) | 2018.07.18 |
자바스크립트에서 contains 사용? (0) | 2018.07.17 |
페이지 최상단으로 이동시키는 스크립트 (2) | 2018.07.13 |
댓글