기본 콘텐츠로 건너뛰기

Lecture 77 - jQuery(4) jQueryUI 설치법 및 기초 사용법

Lecture 77 - jQuery(4) jQueryUI 설치법 및 기초 사용법

베니지오 IT 월드

갬성개발러 Bennyziio 2019. 7. 15. 13:33

//20180904 frontend engine(gui) - javascript -jQuery - jQueryUI - Bootstrap -> 발전 *ECMAScript 6 / 7 -> mvc - angular => pc / mobile -> jquery Mobile -> react -> vue * 데이터 시각화 D3 d3js.org backend engine - spring, MyBatis - 지속적으로 발전중 www.jqueryui.com pc - jquery ui mobile - jquery mobile (*) - egovframe getbootstrap.com 반응성웹(pc, mobile 동시 사용 가능) - startup에서 많이 사용(사이트에 사람이 많이 안몰리는 곳)

http://jqueryui.com/

http://getbootstrap.com/

https://d3js.org/

데이터 시각화에 대해서 공부해 보자 - jQuery가 선행학습이 되어 있어야 한다.

Source Code(GitHub)

여기서 GitHub이란 협업을 위한 사이트로 공유에 중점을 둔다.

jQuery Eclipse 실행

위 복사한 내용을 WebContent안에 붙여넣기

jQueryUIEx01

accordion 클릭 후 출력상태

jQueryUIEx02

Stable 다운

Custom Download로 가서 thema 다운

다운 받은 jquery-ui-1.12.1에서 아래 파일만 복사해서 이클립스내 js 폴더에 붙여넣는다

다운 받은 jquery-ui-theme-1.12.1에서 thems 폴더안에 있는 모든 파일을 복사해서 이클립스내 css 폴더에 붙여넣는다

다 하면 위와 같은 tree가 구성될 것이다.

index.jsp 파일을 만들어 주자

jQueryUIEx02.WebContent.index

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { alert('Hello jQuery UI Test'); });

alert 구문 지우고 이걸 앞으로 탬플릿으로 사용할 것이다

Button을 만들어 보자

jQueryUIEx02.WebContent.ex01

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); }); 난 버튼 난 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); }); 난 버튼 난 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); $('input[type="submit"]').button(); }); 난 버튼 난 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); $('input[type="button"]').button(); }); 난 버튼 난 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); $('input[type="button"]').button(); $('a').button(); }); 난 버튼 난 버튼 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); $('input[type="button"]').button(); $('a').button(); $('#btn3').button(); }); 난 버튼 난 버튼 버튼 나도 버튼

F12 DOM 탐색기로 보면 내가 주지도 않은 CSS가 추가되어 있다. class는 여기서 자동 설정해주고 있다.

테마를 바꾸면 디자인이 전부 다 바뀐다

에서 base를 바꿔주면 된다

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); $('input[type="button"]').button(); $('a').button(); $('#btn3').button(); }); 난 버튼 난 버튼 버튼 나도 버튼

사이즈가 좀 커서 줄여보자 - body { font-size: 70%; }

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#btn2').button(); $('input[type="button"]').button(); $('a').button(); $('#btn3').button(); }); 난 버튼 난 버튼 버튼 나도 버튼

jQueryUIEx02.ex02

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#btn2').button().on('click', function() { alert('click'); }); }); 난 버튼 난 버튼 버튼 나도 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#btn2').button().on('click', function() { alert('click'); }); $('a').button().on('click', function() { alert('click'); }); }); 난 버튼 난 버튼 버튼 나도 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#btn2').button().on('click', function() { alert('click'); }); $('a').button().on('click', function() { alert('click'); }); }); 난 버튼 난 버튼 버튼 나도 버튼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#btn2').button().on('click', function() { alert('click'); }); // submit $('a').button().on('click', function(e) { alert('click'); e.preventDefault(); }); }); 난 버튼 난 버튼 버튼 나도 버튼

preventDefault()를 주게 되면 자동으로 페이지가 네이버로 전환되는것을 막아준다.

jQeuryUIEx02.ex03

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#btn1').button({ icon: 'ui-icon-gear', iconPosition: 'end' }); $('#btn2').button({ icon: 'ui-icon-flag', showLabel: false }); }); 난 버튼 난 버튼

아이콘값을 불러와서 버튼에 추가해줄 수 있다.

jQueryUIEx04.ex04

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { }); 호텔 등급 : 2 star 3 star 4 star 5 star

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('input[type="checkbox"]').checkboxradio(); }); 호텔 등급 : 2 star 3 star 4 star 5 star

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { //$('input[type="checkbox"]').checkboxradio(); $('input[type="checkbox"]').checkboxradio({ icon: false }); }); 호텔 등급 : 2 star 3 star 4 star 5 star

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { //$('input[type="checkbox"]').checkboxradio(); $('input[type="checkbox"]').checkboxradio({ icon: false }); $('input[type="radio"]').checkboxradio(); }); 호텔 등급 : 2 star 3 star 4 star 5 star 위치 서울 대전 부산 목포

토글 기능 없음

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { //$('input[type="checkbox"]').checkboxradio(); $('input[type="checkbox"]').checkboxradio({ icon: false }); $('input[type="radio"]').checkboxradio(); }); 호텔 등급 : 2 star 3 star 4 star 5 star 위치 서울 대전 부산 목포

라디오는 원칙이 단일 선택이 원칙이므로 name을 r1으로 통일해줘야 한다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { //$('input[type="checkbox"]').checkboxradio(); $('input[type="checkbox"]').checkboxradio({ icon: false }); //$('input[type="radio"]').checkboxradio(); $('input[type="radio"]').checkboxradio({ icon: false }); }); 호텔 등급 : 2 star 3 star 4 star 5 star 위치 서울 대전 부산 목포

jQueryUIEx02.progressbar

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar(); });

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 50 }); });

회색(base)가 싫어서 다른색(cupertino)을 적용해보았다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 50 }); $('#btn1').button(); $('#btn2').button(); }); 감소 증가

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 50 }); $('#btn1').button().on('click', function() { var value = $('#progressbar').progressbar('value'); $('#progressbar').progressbar('value', value - 5); }); $('#btn2').button().click(function() { }); }); 감소 증가

감소를 해봤으니 증가도 추가해 보자

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 50 }); $('#btn1').button().on('click', function() { var value = $('#progressbar').progressbar('value'); $('#progressbar').progressbar('value', value - 5); }); $('#btn2').button().click(function() { $('#progressbar').progressbar( 'value', $('#progressbar').progressbar('value') + 5); }); }); 감소 증가

progressbar를 시작하면 5씩 증가하고 가득 차면 전송 완료 창이 뜨게 해보자

jQueryUIEx02.progressbar2

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 0 }); $('#btn1').button().on('click', function() { increase = setInterval(function() { var value = $('#progressbar').progressbar('value'); $('#progressbar').progressbar('value', value + 5); if(value==100) { alert('전송 완료'); clearInterval(increase); } }, 500); }); $('#btn2').button().on('click', function() { clearInterval(increase); }) }); 시작 일시정지

Custom Label을 이용하여 아래와 같이 구현해보자

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } .ui-progressbar { position: relative; } .progress-label { position: absolute; left: 50%; top: 4px; font-weight: bold; text-shadow: 1px 1px 0 #fff; } // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 0 }); $('#btn1').button().on('click', function() { increase = setInterval(function() { var value = $('#progressbar').progressbar('value'); $('#progressbar').progressbar('value', value + 5); $('.progress-label').text(value + '%'); if(value==100) { alert('전송 완료'); clearInterval(increase); } }, 500); }); $('#btn2').button().on('click', function() { clearInterval(increase); }) }); Loading ... 시작 일시정지

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } .ui-progressbar { position: relative; } .progress-label { position: absolute; left: 50%; top: 4px; font-weight: bold; text-shadow: 1px 1px 0 #fff; } // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 0, change: function() { console.log('change 호출'); }, complete: function() { console.log('change 호출'); } }); $('#btn1').button().on('click', function() { increase = setInterval(function() { var value = $('#progressbar').progressbar('value'); $('#progressbar').progressbar('value', value + 5); $('.progress-label').text(value + '%'); if(value==100) { alert('전송 완료'); clearInterval(increase); } }, 500); }); $('#btn2').button().on('click', function() { clearInterval(increase); }) }); Loading ... 시작 일시정지

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } .ui-progressbar { position: relative; } .progress-label { position: absolute; left: 50%; top: 4px; font-weight: bold; text-shadow: 1px 1px 0 #fff; } // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 0, change: function(event, ui) { console.log('change 호출 ' + $(this).progressbar('value')); }, complete: function() { console.log('complete 호출'); } }); $('#btn1').button().on('click', function() { var increase = setInterval(function() { var value = $('#progressbar').progressbar('value'); $('#progressbar').progressbar('value', value + 5); //$('.progress-label').text(value + '%'); if(value==100) { alert('전송 완료'); clearInterval(increase); } }, 500); }); $('#btn2').button().on('click', function() { clearInterval(increase); }) }); Loading ... 시작 일시정지

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } .ui-progressbar { position: relative; } .progress-label { position: absolute; left: 50%; top: 4px; font-weight: bold; text-shadow: 1px 1px 0 #fff; } // 커스텀 javascript $(document).ready(function() { $('#progressbar').progressbar({ value: 0, change: function(event, ui) { //console.log('change 호출 ' + $(this).progressbar('value')); $('.progress-label').text($(this).progressbar('value') + '%'); }, complete: function() { //console.log('complete 호출'); $('.progress-label').text('전송 완료'); } }); $('#btn1').button().on('click', function() { var increase = setInterval(function() { var value = $('#progressbar').progressbar('value'); $('#progressbar').progressbar('value', value + 5); //$('.progress-label').text(value + '%'); if(value==100) { alert('전송 완료'); clearInterval(increase); } }, 500); }); $('#btn2').button().on('click', function() { clearInterval(increase); }) }); Loading ... 시작 일시정지

jQueryUIEx02.slider01

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider(); });

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal' }); });

수평

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ //orientation: 'horizontal' orientation: 'vertical' }); });

수직

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', //orientation: 'vertical' value: 50 }); });

기본값 : 50

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', // orientation: 'vertical' // tick value: 50, min: 0, max: 200 }); });

최소 0, 최대 200

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', // orientation: 'vertical' // tick value: 50, min: 0, max: 200, slide: function() { console.log($(this).slider('value')); } }); });

동작중 모든 값 출력

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', // orientation: 'vertical' // tick value: 50, min: 0, max: 200, change: function() { console.log($(this).slider('value')); } /* slide: function() { console.log($(this).slider('value')); } */ }); });

이동 된 위치 값 출력

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', // orientation: 'vertical' // tick value: 50, min: 0, max: 200, step: 20, change: function() { console.log($(this).slider('value')); } /* slide: function() { console.log($(this).slider('value')); } */ }); });

값 20의 간격으로 이동되고 출력

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', // orientation: 'vertical' // tick range: true, value: [10, 100], min: 0, max: 200, //step: 20, /* change: function() { console.log($(this).slider('value')); } */ slide: function() { console.log($(this).slider('value')); } }); });

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', // orientation: 'vertical' // tick range: true, values: [10, 100], min: 0, max: 200, //step: 20, /* change: function() { console.log($(this).slider('value')); } */ slide: function() { console.log($(this).slider('values', 0)); console.log($(this).slider('values', 1)); } }); });

두 틱의 값을 받아올 수 있다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#slider').slider({ orientation: 'horizontal', // orientation: 'vertical' // tick range: true, values: [10, 100], min: 0, max: 200, //step: 20, /* change: function() { console.log($(this).slider('value')); } */ slide: function(event, ui) { //console.log($(this).slider('values', 0)); //console.log($(this).slider('values', 1)); // ui - dom 내용 console.log(ui.values[0]); console.log(ui.values[1]); } }); });

jQueryUIEx02.spinner

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#spinner').spinner(); }); 수량

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#spinner').spinner({ min: 0, max: 10 }); }); 수량

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#spinner').spinner({ min: 0, max: 10, step: 2 }); }); 수량

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#spinner').spinner({ min: 0, max: 10, step: 2, spin: function(event, ui) { console.log(ui.value); } }); }); 수량

jQueryUIEx02.selectmenu01

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { }); jQuery.js ui.jQuery.js mobile.jQuery.js

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#files').selectmenu(); }); jQuery.js ui.jQuery.js mobile.jQuery.js

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#files').selectmenu(); }); 다음을 선택 jQuery.js ui.jQuery.js mobile.jQuery.js

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#files').selectmenu(); }); 다음을 선택 jQuery.js ui.jQuery.js mobile.jQuery.js jQuery.js ui.jQuery.js mobile.jQuery.js

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#files').selectmenu({ change: function(event, ui) { console.log(ui.item.value); } }); }); 다음을 선택 jQuery.js ui.jQuery.js mobile.jQuery.js jQuery.js ui.jQuery.js mobile.jQuery.js

jQueryUIEx02.autocomplete

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { var availableTags = [ 'ActionScript', 'AppleScript', 'Asp', 'BASIC', 'C', 'C++', 'Clojure', 'COBOL', 'ColdFusion', 'Erlang', 'Fortran', 'Groovy', 'Haskell', 'Java', 'JavaScript', 'Lisp', 'Perl', 'PHP', 'Python', 'Ruby', 'Scala', 'Scheme' ]; $('#tags').autocomplete({ source: availableTags }); }); 언어 선택 :

jQueryUIEx02.WebContent.data.data_json - ajax로 데이터를 받아오자

<%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8" trimDirectiveWhitespaces="true"%>

contentType과 trimDirectiveWhitespaces를 수정한다.

<%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8" trimDirectiveWhitespaces="true"%> { "data" : [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme" ] }

jQueryUIEx02.autocomplete02를 만들어서 availableTags 배열 데이터를 ajax로 대체하자.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { //var availableTags; $.ajax({ url: './data/data_json.jsp', type: 'get', dataType: 'json', success: function(json) { var availableTags = json.data; $('#tags').autocomplete({ source: availableTags }); }, error: function() { alert('서버 에러'); } }); }); 언어 선택 :

jQueryUIEx02.accordion01

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#accordion').accordion(); }); Section 1 Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. Section 2 Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. Section 3 Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. List item one List item two List item three Section 4 Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#accordion').accordion(); }); 내용 추가 Section 1 Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. Section 2 Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. Section 3 Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. List item one List item two List item three Section 4 Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

내용 추가하기

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#accordion').accordion(); $('#btn1').button().on('click', function() { var data = ''; data += '

Section 5

'; data += '
'; data += '

'; data += ' 추가된 데이터'; data += '

'; data += '
'; $('#accordion').append(data); }); }); 내용 추가 Section 1 Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. Section 2 Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. Section 3 Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. List item one List item two List item three Section 4 Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

추가된 데이터는 accordion화 되지 않는다. 왜냐하면 css가 안먹힌다. 만들어진 순서가 다르므로

그래서 아래와 같이 refresh를 추가해줘야 한다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#accordion').accordion(); $('#btn1').button().on('click', function() { var data = ''; data += '

Section 5

'; data += '
'; data += '

'; data += ' 추가된 데이터'; data += '

'; data += '
'; $('#accordion').append(data); $('#accordion').accordion('refresh'); }); }); 내용 추가 Section 1 Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. Section 2 Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. Section 3 Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. List item one List item two List item three Section 4 Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

jQueryUIEx02.accordion02 - 아이콘을 넣어보자

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { var icons = { header:"ui-icon-circle-arrow-e", activeHeader: "ui-icon-circle-arrow-s" }; $('#accordion').accordion({ icons: icons }); $('#toggle').button().on('click', function() { if($('#accordion').accordion('option', 'icons')) { $('#accordion').accordion('option', 'icons', null); } else { $('#accordion').accordion('option', 'icons', icons); } }); $('#btn1').button().on('click', function() { var data = ''; data += '

Section 5

'; data += '
'; data += '

'; data += ' 추가된 데이터'; data += '

'; data += '
'; $('#accordion').append(data); $('#accordion').accordion('refresh'); }); }); 내용 추가 Section 1 Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. Section 2 Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. Section 3 Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. List item one List item two List item three Section 4 Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Toggle icons

어코디온을 활용하여 구구단 시작단, 끝단을 입력하여 단수별로 출력되게 해보자

jQueryUIEx02.gugudan01

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here /* 커스텀 css */ body { font-size: 70%; } // 커스텀 javascript $(document).ready(function() { $('#startDan').spinner({ min: 1, max: 9 }); $('

댓글

이 블로그의 인기 게시물

[Debugging] AngularJS2 - Can't bind to 'ngModel' since it isn't a...

[Debugging] AngularJS2 - Can't bind to 'ngModel' since it isn't a... - 좋아요 하이 .. !! Angular2 로 개발을 하다가 아래와 같은 에러를 만났다. 흠 .. 이게 뭘까 열심히 구글링을 해봤다. 간단한 내용이다. 모듈을 추가해주기만 하면 된다. app.module.ts를 열어보자. 여기에다가 FormsModule 과 ReactiveFormsModule을 추가해주면 문제가 해결된다 ! 다들 즐거운 코딩하자. from http://devkingdom.tistory.com/106 by ccl(A) rewrite - 2020-03-18 00:54:15

[aws] deploy Angular app with s3 | AWS S3로 angular 앱 배포하기

[aws] deploy Angular app with s3 | AWS S3로 angular 앱 배포하기 angular project를 빌드한다 ng build --prod 그러면 dist 폴더가 생긴다. dist 폴더 안에 있는 아이들을 사용한다. 아마존 s3 콘솔로 이동 https://s3.console.aws.amazon.com/s3/home?region=ap-northeast-2 새로운 Bucket 을 생성한다(Create bucket). 버킷 이름은 고유하게 짓는다. 버킷 생성후 properties tab > static website hosting을 클릭한다. index document는 index.html은 쓴다. properties > static website hosting Permission tab 에서 권한을 수정한다. overview tab 에서 필요한 파일 업로드 dist 폴더 안에 있는 파일들을 업로드 한다. bucket policy 설정 properties > static website hosting > endpoint 클릭하면 서버에 올라간 앱을 확인 할 수 있다 일단 angular 앱을 올리긴 했는데.. 이걸로는 아무것도 할 수 었다. django로 만든 서버를 올리고 database를 연결하고 그것을 지금 이 angular 앱과 연결해야한다. 아직 어떻게 해야 할지는 모르겠음 계속 삽질 중. 그래도 angular app 하나 올라갔는데 재밌네 from http://paigeblog.tistory.com/18 by ccl(A) rewrite - 2020-03-25 16:20:22

Angular2 시작하기

Angular2 시작하기 Angular2 시작하기 1. NodeJS 설치 - https://nodejs.org/ko/ NodeJS 공식 홈페이지 접속하여 Node를 다운 후 설치. 2. NPM 을 통한 Angular-Cli 설치 Window Command 를 통하여 npm install -g @angular/cli 명령어를 실행한다. 위와 같이 정상적으로 angular-cli 가 설치되었다면 Project 가 위치할 폴더를 생성. 참고 사이트 : https://cli.angular.io/ 3. Angular-cli 를 통한 Angular Project 생성. Window Command 를 통한 ng new [폴더명] 위와 같이 Angular 기본 프로젝트가 생성됨. 해당 프로젝트로 폴더로 이동하여 ng serve 명령어 실행 Node 를 통해 Angular 프로젝트 실행. http://localhost:4200 접속하게되면 위와같이 Angular 프로젝트 실행된다. 앞으로 Angular2 의 개념들을 포스팅하면서 Spring-Boot , Spring Project의 Angular-cli 를 이용하여 ng build 하여 포팅하는 글을 올리겠습니다. from http://overclassbysin.tistory.com/3 by ccl(A) rewrite - 2020-03-07 07:55:13