버전 3은 최신 버전인데 아직 국내에서는 메인으로 사용하기 부담감이 있음
( 개발하기 위해서는 블로그에 IE 6/7/8을 위한 버전 1을 사용한다.)
<scripttype="text/javascript">
<scripttype="text/javascript">
$(document).ready(fuction(){
$(document).ready(fuction(){})
jQuery 밑에 javascript를 선언하게 되면 실행이 되지않는다.
html에서 f12를 눌러 확인하면 오류가 뜨게 됨.
$(document).ready(fuction(){})가 길다면
$(function(){})를 사용하여도 위와 같은 작동을 하게 된다.
<input type="text" id="txt1" value="text1" />
<input type="hidden" id="hdn1" value="hidden1" />
alert(document.getElementById("txt1").value);
일반 자바스크립트로 작성했을때 이렇게 위와 같이 작성하면 나온다.
var txt1 = $("#txt1").val();
function 안의 값은 set이라고 보면되고
그냥 script안에 적은 값은 get이라고 보면된다.
$("#div1").attr("style","color:red;);
alert($("#div1").attr("style"))
div1인 styled의 속성을 가져온다라는 뜻
alert($("#div2").attr("class"))
<div id="div1" style="display:block;"> 테스트1
<div id="div1" class="testDiv"> 테스트1
$("#div1").attr("태그의 속성 KEY명");
현재 적용되어 있는 스타일을 가져오는 것으로 get이다.
$("#div1").attr("태그의 속성 KEY명","스타일");
$("#node2").html("<h1>테스트</h1>");
을 하면 특정영역에 있는 html을 뽑아와서 적용시키고 뽑아낸다.
$("#node2").text("<h1>테스트</h1>");
1.input, select = val("SET값");
2.태그의 속성값을 알기 위한 함수는 = attr("속성명") => get
= attr("속성명","속성값") => set
3. 특정 html 영역의 html 값을 알고 싶다면 화면에 html()
html 코드자체를 화면에 출력시키고자 한다면 text() 사용하면 된다.
크롬에서 f12를(개발자모드) 누르고 별도의 창을 띄워서 오류를 확인하고
before(엘리먼트), after(엘리먼트), prepend(엘리먼트), append(엘리먼트)
var html = '<div><h1>삽입된 레이아웃</h1></div>';
${"#layer1").before(html);
layer1 전에 html의 내용이 들어간다.
${"#layer1").after(html);
layer1 이후에 html의 내용이 들어간다.
prepend를 주면 최상단에 내용이 들어간다.
${"#layer2").prepend(html);
layer2에서 첫번째 레이아웃 앞에 삽입된 레이아웃 이라고 들어간다.
append를 주면 최하단에 내용이 들어간다.
${"#layer2").append(html);
layer2에서 세번째 레이아웃 뒤에 삽입된 레이아웃 이라고 들어간다.
JQuery 사이트에 들어가면 APIDocumentation들어가면
왼쪽에 selector 탭에 지정된 연산자들이 나온다.
$(function(){
Var txt1 = $(".text1").val(); or var txt1=$("input[class=text1]").val();
두가지 방법을 사용 할 수있다. 클래스이기에 앞에 ( . ) 을 붙여서 사용할 수 있다.
Console.log(txt1); => system.out.println 과 같은 기능이다.
브라우저에서 값을 출력해 보기 위한 함수이다.
f12에서 console 탭에 가면 나오게 된다.
$("input[name=xxx]") => name으로 찾는 방식이다. 태그의 속성값 tag[속성키=속성값]
Var txt1 = $("input[name=textName1]").val();
<input type="text" name="textName1" class="text1" value="텍스트입니다." />
$(function(){
$("input[name=xxx]:cheched")
Var chechedRadio = $("input[name=rdo]:cheched").val();
Console.log(chechedRadio);
cheched가 붙은 특정 속성이 붙은 값을 선택하여 출력을 한다.
<input type="radio" name="rdo" cheched="cheched" value="첫번째" />
$(function(){
Console.log($(".class2").html());
이렇게 출력하면 첫번재인 값입니다1 을 출력하게 된다.
Var class2 = $(".class2:eq(1)").html();
eq는 0부터 순차적으로 늘어나기 때문에 1을 줘야 2번째가 나온다.
class2인 태그에 두번째 속하는 html값을 가져온다는 뜻
$(function(){
Var text = $("input[type=text]:eq(1)").val();
=> value이기 때문에 위에서 처럼 html을 주는게 아닌 val을 준다.
<input type="text" value="텍스트1" />
<input type="text" value="텍스트2" />
Var id = $("#idText").val(); => 아이디 값을 가져오는 것이다.
<input type="text" id="idText" value="아이디입니다." />
Var cls = $(".classText").val(); => 클래스 값을 가져오는 것이다.
<input type="text" class="classText" value="클래스입니다." />
Var name = $("input[name=nameText]").val(); => name 값을 가져오는 것이다.
<input type="text" name="nameText" value="네임입니다." />
Var radioCheck = $("input[name=chechedRadio]:cheched").val();
=> checked속성을 가지고 있는 라디오 값을 가져오겠다는 것이다.
<input type="radio" name="checkedRadio" value="라디오1" />
<input type="radio" name="checkedRadio" value="라디오2" check="checked" />
<input type="radio" name="checkedRadio" value="라디오3" />
Var eqRadio = $("input[name=checkedRadio]:eq(2)").val();
또는$("input[name=checkedRadio]").eq(2).val(); 함수로 주어도 같은 방식이다.
=> name이 checkedRadio 중에 eq(2) 즉 3번째 값을 가져온다.
<input type="radio" name="checkedRadio" value="라디오1" />
<input type="radio" name="checkedRadio" value="라디오2" check="checked" />
<input type="radio" name="checkedRadio" value="라디오3" />
이렇게 주면 답과 같이 답이 나오게 된다.
$(function(){
//css() 함수를 이용하여 스타일 제어하기
$("div:eq(0)").css("color","red");
=> 스타일 제어1 의 글자색이 빨간색으로 변하게 되고
html에서는 style="color:red"; 로 값이 들어가게 된다.
$("div:eq(0)").css("font-weight","bold");
=> 스타일 제어1 의 글자를 진하게 해주는 값이 적용된다.
$("div:eq(0)").attr("style","color:red; font-weight:bold;")
이렇게 주어도 위의 두가지가 같이 적용이 된다.
특정스타일을 바꿀때는 이렇게 사용하는게 편하고
소스가 많아 질 경우 정의하고 코딩하는 것이 편하다.
<script type="text/javascript">
$(function(){
$("#sampleDiv1").addClass("sample1");
=> sampleDiv1이라는 아이디로 부터 sample1이라는 클래스를 추가한다라는 의미
없는 클래스를 추가하기 위해서 사용되는 것이다.
$("#sampleDiv2").removeClass("sample2");
=> sampleDiv2라는 아디이의 sample2라는 클래스를 제거 한다는 의미
클래스명이 지정된 셀럭터로부터 존하는지 여부를 판단한다.(true/false)
Var flag = $("#sampleDiv1").hasClass("sample1");
=> 내가 선택한 영역에 내가 지정한 클래스 명이 존재하는 지 판단하는 것
Console.log("클래스존재여부",flag);
If( $("#sampleDiv1").hasClass("sample1")){
$("#sampleDive1").removeClass("sample1");
}else {
$("#sampleDiv1").addClass("sample2");
=> sampleDiv1 아이디에 sample1 클래스가 있다면 sample1클래스가 지워질
것이고 없다면 sample2 클래스가 추가되는 조건식이다.
<div id="sampleDiv1">스타일 제어1</div>
<div id="sampleDiv2" class="sample2">스타일 제어2</div>
정리
내가 찾고자하는 테이블을 찾는 기능을 말한다.
$(function(){
Parent(), find(), prev(), next() 4가지의 대표적인것이 있다.
Var txt = $("table").find("#txt").val();
Var txt = $("table").find("tr:eq(0)").val();
=> table의 기준으로 그안의 아이디 값이 txt인 것을 찾는다.
Var html = $("#txt").parent().next().html()
=> 아이디가 txt인 태그의 상위 td에서 바로 직후의 값들을 뽑아내는 것이다.
즉 텍스트값1 부터 텍스트값4까지 출력이 된다.
Var html = $("#txt").parent().next().html().find(".txt:eq(1)").val();
=> class가 txt인 곳의 두번째 값 즉 텍스트값2 를 찾아내는것이다.
Var txt = $(".txt:eq(2)").prev().val();
=> class가 txt인 곳의 3번째 값의 바로 직전 값을 찾겠다는 것이다.
Var txt = $(".txt:eq(2)").next().val();
=> class가 txt인 곳의 3번째 값의 바로 직후의 값을 찾겠다는 것이다.
Prev().prev() 를 두번 쓰면 그위로위로 값을 찾아오게 된다.
Var radioValue = $("#txt"),parent().parent().next().find("input[name=rdo]:checked").val();
=> id가 txt인것부터 위로 부모 부모 즉 tr의 직후인 다음 tr에서 찾는데
input값이 rdo인 값에서 checked로 되어있는 값을 찾아내는 것이다.
또는 parent(). Parent(). Parent()를 세번써서 table까지 올라가서 거기서
Find() 하여서 값을 찾아가도 되는 방법이다.
<table>
<tr>
<td>
<input type="text" id="txt" value="텍스트값" />
<td>
<input type="text" id="txt" value="텍스트값1" />
<input type="text" id="txt" value="텍스트값2" />
<input type="text" id="txt" value="텍스트값3" />
<input type="text" id="txt" value="텍스트값4" />
<tr>
<td colspan="2">
<input type="radio" name="rdo" value="라디오 첫번째 값" />
<input type="radio" name="rdo" value="라디오 첫번째 값" checked="checked" />
</tr>
$(function(){
$("input[type=text]:eq(0)").val();
$("input[type=text]:eq(1)").val();
$("input[type=text]:eq(2)").val();
$("input[type=text]:eq(3)").val();
$("div").each(function(index){
Var txt = $("div").eq(index).find("input[type=text]").val();
$(this) = $("div").eq(index) 와 같은 의미를 가지고 있다.
Var txt = $(this).find("input[type=text]").val();
$(this) 는 div 영역을 가리키고 있는 것이다.
$(this)가 제대로 가리키는지 확인을 하기 위해서는
Console.log($(this).html());
If(index == 1) { // 0이 첫번째이니까 두번째는 1까지 적어야 된다.
Return false; //return true or return 이라고 줄 경우 모두 출력한다.
Var textTag = "<input type='' value='임시값입니다.' />";
각각 영역에 맨 하위단에 임시값입니다 라고 추가가 된다.
<div>
<input type="text" value="첫번째 값" />
<div>
<input type="text" value="두번째 값" />
<div>
<input type="text" value="세번째 값" />
<div>
<input type="text" value="네번째 값" />
여러개의 동일한 셀럭터일 경우 each 문을 쓴다.
$("셀렉터").each(function(index){
$(this).추가함수를 붙여서 사용하면 됨.
});
Click, dbclick, keydown, keypress, keyup, on
클릭 이벤트
Input type="button" value="클릭"
$(function(){
$("#alertButton").click(function(){
<input type="button" id="alertButton" value="클릭" />
검색버튼을 클릭시, select 태그의 값 _ text태그의 값을 console. Log 출력해보아라
$("#searchButton").click(function(){
Var searchKey = $("#searchKey").val();
Var searchValue = $("#searchValue").val();
Console.log("searchKey",searchKey);
Console.log("searchValue",searchValue);
SearchValue 태그에 엔터 입력 시, select 태그의 값 + text 태그의 값을
$("#searchVaule").keypress(function(event){
//keyCode =13 (엔터)
If(event.keyCode == 13) {
Var searchKey = $("#searchKey").val();
Var searchValue = $("#searchValue").val();
Console.log("searchKey",searchKey);
Console.log("searchValue",searchValue);
})
dbclick은 빠르게 두번 클릭을 해야지 결과값이 뜬다.
1번에 click부분에 넣어서 사용하면 된다.
<select id="searchKey">
<option value="first">첫번째 값</option>
<option value="second">두번째 값</option>
<option value="third">세번째 값</option>
<input type="text" id="searchValue">
<input tyep="button" id="searchButton" value="검색">
클릭이벤트는 꼭 버튼에만 적용되는것이 아니다.
$("#ptag").click(function(){
<p id="ptag"> 클릭해보세요 </p>
이렇게 하여도 클릭해보세요라는 글에 클릭을 하면 alert창이 뜬다.
$("#addButton").click(function(){ //id가 addButton일때 클릭을 했을시 하는 행동
Var textTag = " <input type='text' value = '임시로 추가된 값입니다.' />"; //추가할 내용을 적어준다.
$("#addLayer").append(textTag); //addLayer안에 append(자식에게 추가)한다는 것
<input type="button" id="addButton" value="추가">
// 이전 추가 버튼 클릭시 addLayer 직전에 html삽입
Var textTag = "<h2>임시로 추가된 h2태그 입니다.</h2>";
$("#beforeAddButton").click(function(){
$("#addLayer").before(textTag);
// 이후 추가 버튼 클릭시 addLayer 직후에 html삽입
$("#afterAddButton").click(function(){
$("#addLayer").after(textTag);
<input type="button" id="beforeAddButton" value="이전 추가">
<input type="button" id="aterAddButton" value="이후 추가">
버튼을 추가하는 버튼과 alert창을 띄우는 버튼
하지만 추가한 버튼은 동적이기 때문에 첫번째 alert창을 띄우는 버튼만
alert이 뜨고 그다음에 추가되는 버튼들은 alert창이 뜨지 않는다.
//추가 버튼을 클릭하면 클릭이라는 버튼이 생성됨
$("#addButton").click(function(){
Var tag = '<input type="button" class="alertBoutton" value="클릭">';
$("#addLayer").append(textTag);
// 클릭이라는 버튼을 클릭하면 alert창이 뜸 대신 추가된 클릭버튼은 적용이 안됨
$(".alertButton").click(function(){
//on 이벤트를 사용하면 추가된 클릭 버튼을 클릭하여도 alert창이 생성이 된다.
$(document).on("이벤트","셀렉터",function(){ })
$(document).on("click",".alertButton",function(){
<input type="button" id="addBoutton" value="추가">
<div id="addLayer">
<input type="button" class="alertAddButton" value="클릭">
Ajaxs로 받을 수 있는 데이터 타입 html인 방식에 대해 강의
목록조회 데이터 처리(서버페이지) => 리스트페이지 =>
등록페이지 => DB에 데이터 등록(서버페이지) =>
$(function(){
$("#submitButton").click(function(){
Document.getElementById("frm").submit(); // 자바스크립
$("#frm").submit(); // jquery
<form action=:/insert.jsp" metjod="post" id="frm">
<input type="text" name="content">
<input type="button" id="submitButton" value="전송">
<table width="100%" border="1"></table>
//form action = url (호출하고자 하는 url)
//form은 알아서 input 태그들을 전송하지만 ajax는 data을 주어야 한다.
Success : function(data=파라미터라 변수를 아무렇게 주어도 됨){ //결과는 페이지를 통째로 가져오는 역할을 하는 부분이다.
Console.log(data); //data가 html인걸 볼수있다.
$("#submitButton").click(function(){
$.ajax({ //댓글이나 쉽게 말해 페이스북같은 화면이 ajax이다.
Url : '/insert_ajax.jsp',
// 파라미터 부분 추가됨 내가 보내고자하는 파라미터 값을 줄때는 data
Data : { content : $("input[name=content]").val()},
//여러개의 form이 있을때 한번에 주는 방법
Data : $("form").serialize(),
Success : function(data){
<form action=:/insert.jsp" metjod="post" id="frm">
<input type="text" name="content">
<input type="button" id="submitButton" value="전송">
<table width="100%" border="1"></table>
form은 insert페이지 갔다가 list페이지로 오는 형식이지만
가지고 오려는 태그만 ajax통으로 넣어놓고 불러오기만 하면 된다.
{
"title" : "안녕하세요" //키안에 들어가있는 변수값을 표현하는 것
//배열일 때 나타내는 방법 [이거 안에 여러개의 { 이것을 사용으로 여러개의 키 값을 넣을 수 있다.
<div id="titleLayer"><h2>안녕하세요</h2> </div>
<div id="subjectLayer"><h1>반갑습니다.</h1> </div>
<table width="100%" border="1"> </table>
이렇게 만드는 것을 코딩을 이용하여 내용을 가져오는 것을 하겠다.
jason방식은 동일한 데이터를 웹이나 앱이나 api방식으로 내려줄때 사용한다.
$(function(){
$("#loadButton").click(function(){
#.ajax({
Success : function(data){
Console.log(data.subject);
// data안에있는 변수를 출력하는 방법이다.
$("#titleLayer").html("<h2>" + data.title + "</h2>");
$("#subjectLayer").html("<h1>" + data.subject + "</h1>");
For(var i = 0 ; i<list.lenght; i++) {
TableTag += "<tr><td>" + list[i].subject + "</td><td>" +
List[i].content + "</td></tr>"; //변수에 문자열을 답고
$("table").html(tableTag); // 담은 변수를 통째로 set한다.
$.each(list,function(index,data){
TableTag += "<tr><td>" +data.subject + "</td><td>" +
data.content + "</td></tr>";
<input type="button" value="로드" id="loadButton">
<div id="titleLayer"> </div>
<div id="subjectLayer"> </div>
<table width="100%" border="1"> </table>
Jsonp - get방식( 해당 데이터를 가져올 수 있다.) = 조회용 / 대신 다른 도메인쪽에서 jsonp 통신형식에
맞춰서 json 데이터를 낼 줄때만 가능하다.
Cors - 서버에서 설정을 해줘야 접근이 가능 하다. Get, post 방식으로 값을 전송한다.
$(function(){
$("showButton").click(function(){
//css에서 display:block;과 같은 기능
$("#showhide").fadeIn(); //스무스하게 나타나고 스무스하게 사라진다.
$("#showhide").slideDown({
Duration : 100 // 시간을 옵션으로 줘서 속도를 나타내준다
$("hideButton").click(function(){
//display:none;과 같은 기능
$("#showhide").fadeOut();
$("#showhide").slideUp();
<input type="button" id="showButton" value="show">
<input type="button" id="hideButton" value="hide">
$(function(){
$("#trimButton").click(function(){
Var txt = $("#trimText").val();
// Console.log("("+txt+")");
// 양 옆의 공백만 제거 될뿐 중간 공백은 제거가 안된다.
<input type="text" id="trimText" value=" 공백입니다.">
<input type="button" id="trimButton" value="trim">
$(function(){
$("#button").click(function(){
$("#showhide").empty(); //안에 있는 모든 값들이 지워진다.
$("#showhide").remove(); // 영역을 삭제하여 console에서 삭제가 된다.
<input type="button" id="button" value="비우기">
$(function(){
$("#button").click(function(){
$(".btn").click(function(){
$(this).parent().remove();
<input type="button" class="btn" value="삭제">
<input type="button" class="btn" value="삭제">
$(function(){
$(".btn").click(function(){
Var index = $(".btn").index(this);
Console.log("index",index);
각 버튼을 누르면 해당되는 index의 레이어를 출력시켜라.
단, 다른영역들은 닫혀야하고 클릭된 영역만 보여주어야 한다.
$(".layer").hide(); //먼저 하이드를 주고 그다음에 누르는 버튼값을 나오게 출력하고 다시
버튼을 누르면 다시 하이드가 되고 버튼 출력값이 나오게 된다.
$(".layer").eq(index).show(); //버튼을 누르는데로 계속 추가되면서 나온다. 그래서 이전에
<input type="button" class="btn" value="버튼1">
<input type="button" class="btn" value="버튼2">
<input type="button" class="btn" value="버튼3">
<div class="layer" stylte="display:none;">
<div class="layer"stylte="display:none;">
<div class="layer"stylte="display:none;">
해외 국내 등 배포한 파일을 플러그인 이라고 한다.
존재하고 있는 플러그인을 가져다가 쓰는 것을 사용 방법 등을 강의
$function(){
//전송 버튼을 클릭하면 입력한 값이 전송되는 것을 작성
$("#sendButton").click(function(){
//action 값이 뜨면 전송이 된것이 확인이 되는것
//getFileName.jsp에 전송가능하게 코딩을 해놓은 파일이다.
$("#sendButton").click(function(){
FormData(); //ajax fileupload 가능하다.
//파라미터를 설정해야됨 0번째를 설정해줘야 한다.
Var formData=new formData(frm);
$.ajax({
Url : '/getFileName.jsp',
// 위의 모양이 보통 ajax 전송하는 코딩이다.
<form id="frm" action="/getFileName.jsp" method="post"
Enctype="multipart/form-data">
<input type="text" name="textName">
<input type="file" name="fileName">
<input type="button" name="sendButton" value="전송">
// 하위버전의 문제는 jquery.malsup.com
플러그인들은 항상 jquery밑에 불러와야된다.
$function(){
$("#sendButton").click(function(){
$("#frm").ajaxForm({
BeforeSubmit : function(){
If($("#textName").val() == "") {
$("#frm").submit(); // submit을 안주면 반응을 볼수가 없다.
// 화면을 전환하지 않고 바로 볼수가 있다.
$("input[name=fileName]").change(function(){
//파일 전송을 하였을때 파일 변경이 있을때 반응을 볼수 있는것
파일업로드 > default form submit 이 있다.
페이지 전화이 되면서 다시 글쓰기 폼이나 목록폼으로 이동이 된다.
간혹하다 ajax로 파일업로드 기능을 넣어주세요. -요구사항이 존재하게됨
이럴때는 예를 들어서 IE 6,7,8,9를 배제하겠다 라고 가정할 경우
New FormData() 객체를 사용하면 된다.
IE 6,7,8,9도 지원할 경우
Jquery.form 플러그인을 이용하여 ajax 파일 업로드 기능을 구현할 수 있다.
하지만 ajax fileupload 관련 플러그인은 다양하다.
그중 선택하는 결정은 사용자 몫임.
Table dnd를 이용한 테이블정렬 순서 변경하기
구글에 table dnd라고 치면 관련된 플러그인이 나온다.
$(function(){
//이렇게 실행하면 html에 십자가 표기사 테이블에 뜨는데
$("table").tableDnD({
OnDragClass : 'blueStyle' //마우스를 드레그할때 색이 변하는것
OnDragStart : function(table,row) {
Console.log(table,row); //클릭시 어느부분에 대한 클릭인지 내용이 나온다.
OnDragStop : function(table,row) {
//tr은 순서가 바뀌지만 앞에 순서는 다시 재배열이되어서 돌아오는 코딩
$("table").find("tr").each(function(index,data){
$("this").find("td").eq(0).html(index+1)
// li로 지정된 화면이면 jquery ui에 sortable을 사용하면 되고
// table로 지정된 화면이면 jquery tableDnD를 사용하면됨
페이징이 기본적으로 지원이 되고 스크롤 페이징이 지원이 된다.
리스트 내에서 알아서 페이징 처리가 되고 서버내에 영역을 받아서
알아서 처리하는 것을 스크롤 페이징이라고 한다.
Bootstrap, jqgrid 두개가 있다.
압축을 푼다음 4개 폴더를 프로젝트 내에 복사 붙인다.
이어서 bootstrap 홈페이지에 들어가서 다운을 받는다.
압축을 풀고 3개의 디렉토리를 프로젝트내에 폴더를 만들고
테이블 태그랑 div태그를 붙여서 바디에 붙여준다.
그리고 각각의 css경로를 위에 붙여넣은 경로로 바꿔준다.
<table id="jqgrid">
JqPlot 소개 및 샘플을 이용한 빠른 개발하기
Jqplot 다운로드에서 최신 버전을 다운 받는다.
참고는 docs에 들어가서 include파일을 복사하여
html에 파일을 만들고 타이틀 밑에 넣어주고
Creat plot에 올라온 소스를 가지고 사용하여 준다.
#(function(){
$.jqplot('chartlayer', [[1,2],[3.12],[5,13.1]]);
<div id="charlayer"></div>
jqplot에서 첫번째는 chart에 id값이다.
예제를 이용할때 앞에 나오는 값을 id로 생각하고 주면된다.
jsTree에 들어가서 플러그인을 다운 받는다.
overView를 들어가서 예제를 사용해 본다.
다운받은 것을 압축 풀고 필요한 부분을 인클루드해 준다.
명령어 하나로 ul li li가 jstree 구조로 생성되는 것이 보여진다.
ul구조에서 li별로 구성이 되는 것을 볼수가 있다.
다운받은 파일에 데모나 샘플을 이용하여 확인해 준다.
홈페이지의 예제를 보면서 각 속성을 주는 것을 봐준다.
그걸 이용하여 열려있는 상태로 보이던가 아니면 클릭시 열리는 그러한
또한 홈페이지의 json방법을 가져와서 넣어준다.
$('#jstree').jstee({
Core : {
Data : [
{
Text : 'simple root node'
Keep_selected_style : flase
배열 형태로 tree구조로 들어가는 것도 볼 수가 있다.
그리고 플러그인을 홈페이지에서 확인하여 그대로 복사하여 사용 할 수도 있다.