자바스크립트

이제 13개 맞춤 jQuery 플러그인을 사용하여 부트스트랩 화면 구성요소에 활력을 넣는다.

주의! 더 이상 공식지원하지 않는 v2.3.2 문서입니다. 최신 버전 부트스트랩을 확인하세요!

개별 혹은 컴파일된 결과

플러그인을 개별로 (일부 의존관계와 함께) 하나씩 포함할 수 있고, 한번에 모두 포함할 수도 있다. bootstrap.jsbootstrap.min.js는 파일 하나에 모든 플러그인을 담고 있다.

Data 속성

자바스크립트를 한 줄도 쓰지 않고 순수하게 마크업 API로만 모든 부트스트랩 플러그인을 사용할 수 있다. 이 방법은 부트스트랩에서 자동으로 동작하며 플러그인을 사용할 때 제임 처음으로 고려할 방법이다.

그러나 이 기능을 끄고 싶을 경우가 있다. 그래서 data 속성 API를 비활성하는 기능을 제공한다. 이렇게 body에 있는 `'data-api'` 이름공간의 모든 이벤트를 해제하면 된다.

$('body').off('.data-api')

특정 플러그인을 지칭하려면, 이렇게 플러그인 이름과 data-api를 함께 이름공간으로 작성한다.

$('body').off('.alert.data-api')

API 사용

또한 순수하게 자바스크립트 API만으로 모든 부트스트랩 플러그인을 사용할 수 있다. 모든 공개 API는 하나로 연속된 메소드이고, 자신의 적용 대상을 반환한다.

$(".btn.danger").button("toggle").addClass("fat")

모든 메소드는 파라미터로 옵션 객체나 특정 메소드를 지칭하는 문자열을 받을 수 있다. 파라미터가 없다면 기본 행동으로 플러그인을 시작한다.

$("#myModal").modal()                       // 기본값으로 초기화
$("#myModal").modal({ keyboard: false })   // 키보드 없이 초기화
$("#myModal").modal('show')                // 초기화하고 즉시 show를 호출

또, 모든 플러그인은 `생성자` 속성 $.fn.popover.Constructor에 자신의 원래 생성자를 노출한다. $('[rel=popover]').data('popover') 식으로 태그로 부터 직접 특정 플러그인 인스턴스를 얻을 수 있다.

충돌 방지

부트스트랩 플러그인을 다른 UI 프레임워크와 함께 사용하는 경우가 있다. 이런 상황에서 가끔 이름공간 충돌이 일어날 수 있다. 충돌이 발생하면, 되돌리고 싶은 플러그인에 .noConflict를 호출한다.

var bootstrapButton = $.fn.button.noConflict() // $.fn.button 을 이전에 할당한 값으로 되돌린다
$.fn.bootstrapBtn = bootstrapButton            // $().bootstrapBtn 에 부트스트랩 기능을 대입한다

이벤트

부트스트랩은 플러그인의 고유 행동 대부분에 이벤트를 붙인다. 보통 이벤트 이름은 현재형과 과거분사형이다. 현재형(예, show)은 이벤트가 시작할 때 발동하고, 과거분사형(예, shown)은 행동이 마친 뒤 발동한다.

모든 현재형 이벤트는 preventDefault 기능이 있다. 이 기능은 행동이 시작하기 전에 행동의 실행을 중지한다.

$('#myModal').on('show', function (e) {
    if (!data) return e.preventDefault() // 모달이 보이지 않게 막는다
})

전환이란

간단한 전환 효과를 원한다면, 다른 자바스크립트 파일과 함께 bootstrap-transition.js를 한번 포함하라. 컴파일된 (혹은 최소화된) bootstrap.js를 사용한다면 이미 들어있기 때문에 포함할 필요가 없다.

용도

전환 플러그인의 몇가지 사용예.

  • 모달 슬라이드와 페이드인
  • 탭 페이드아웃
  • 경고 페이드아웃
  • 회전광고판 슬라이드

사용예

모달은 단순하지만 유연한 대화 상자이다. 필요한 최소 기능을 가지며 나머지를 똑똑하게 처리한다.

정적 예제

아래 보이는 모달은 제목과 본문과 꼬리말에 행동들이 있다.

<div class="modal hide fade">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    <h3>모달 제목</h3>
  </div>
  <div class="modal-body">
    <p>한 멋진 본문…</p>
  </div>
  <div class="modal-footer">
    <a href="#" class="btn">닫기</a>
    <a href="#" class="btn btn-primary">변경사항 저장</a>
  </div>
</div>

라이브 시연

아래 버튼을 클릭하면 자바스크립트로 모달을 켜고 끈다. 모달은 페이지 상단에서 슬라이드하고 페이드인한다.

<!-- 모달을 켜고 끄는 버튼 -->
<a href="#myModal" role="button" class="btn" data-toggle="modal">모달 시연 시작</a>

<!-- 모달 -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">모달 제목</h3>
  </div>
  <div class="modal-body">
    <p>한 멋진 본문…</p>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">닫기</button>
    <button class="btn btn-primary">변경사항 저장</button>
  </div>
</div>

사용 설명

data 속성으로

자바스크립트를 작성하지 않고 모달을 만든다. 버튼 같은 제어 태그에 data-toggle="modal"을 붙이고, 켜고 끌 대상 모달을 data-target="#foo" 혹은 href="#foo"로 지시한다.

<button type="button" data-toggle="modal" data-target="#myModal">모달 시작</button>

자바스크립트로

아래 자바스크립트 한 줄은 id가 myModal인 모달을 부른다.

$('#myModal').modal(options)

옵션

data 속성과 자바스크립트 모두 옵션을 지정할 수 있다. data 속성 사용시 data-backdrop="" 처럼 data- 뒤에 옵션 이름을 붙인다.

이름 자료형 기본값 설명
backdrop boolean true 모달 주위 배경을 어둡게 만드는 modal-backdrop 태그를 포함한다. 혹시 배경을 클릭할 때 모달을 닫지 않고 싶다면 static 값을 사용한다.
keyboard boolean true 이스케이프(escape) 키를 누르면 모달을 닫는다
show boolean true 초기화시 모달을 보인다.
remote 경로 false

외부 url을 지정하면 jQuery load 메소드를 사용하여 읽어들인 본문을 .modal-body에 넣는다. data api를 사용한다면, href 태그로도 외부 출처를 지정할 수 있다. 아래가 그런 예제이다.

<a data-toggle="modal" href="remote.html" data-target="#modal">여기를 클릭</a>

메소드

.modal(options)

내용을 모달로 만든다. 선택적으로 options 객체를 받는다.

$('#myModal').modal({
  keyboard: false
})

.modal('toggle')

직접 모달을 켜고 끈다.

$('#myModal').modal('toggle')

.modal('show')

직접 모달을 연다.

$('#myModal').modal('show')

.modal('hide')

직접 모달을 숨긴다.

$('#myModal').modal('hide')

이벤트

부트스트랩 모달 클래스는 모달 기능과 연결된 몇가지 이벤트를 가진다.

이벤트 설명
show 이 이벤트는 show 인스턴스 메소드가 불리자마자 발동한다.
shown 이 이벤트는 (css 전환이 끝난 후) 모달이 사용자에게 완전히 보일 때 발동한다.
hide 이 이벤트는 hide 인스턴스 메소드가 불리자마자 발동한다.
hidden 이 이벤트는 (css 전환이 끝난 후) 모달이 사용자에게 완전히 사라질 때 발동한다.
$('#myModal').on('hidden', function () {
  // 무언가를 한다…
})

탐색막대 속 사용예

스크롤 추적 플러그인은 스크롤 위치에 따라 자동으로 탐색의 선택 대상을 변경한다. 탐색막대 아래 영역을 스크롤하며 현재 클래스 변화를 보라. 드롭다운 하위 항목도 마찬가지로 강조한다.

@fat

삼층 이십이호실에 들어 있던 젊은 회사원이 오늘 방을 내어놓았다. 얼마 전에 결혼을 하였는데 그 동안 마땅한 집이 없어서 아내는 친정에, 그리고 남편인 자기는 그전에 들어 있던 이 아파트에 그대로 갈라져서 신혼생활답지 않게 지내 오다가 이번에 돈암정 어디다 집을 사고 신접살림을 차려 놓기로 되었다 한다. 오후 여섯시가 가까운 시각, 아마도 회사의 퇴근시간을 이용하여 양주가 어디서 만난 것인지 해가 그믈그믈해서야 회사원은 색시 티가 나는 아내와 함께 짐을 가지러 트럭과 인부를 데리고 왔다.

@mdo

인부가 한 사람 있다고는 하지만 삼층에서 밑바닥까지 세간을 나르고 그것을 다시 트럭에 싣고 하기에는 이럭저럭 한 시간이 걸렸다. 최무경(崔武卿)이는 아파트의 사무원일 뿐 아니라 회사원이 있던 방이 바로 제가 들어 있는 옆방이어서 여자의 몸으로 별로 손을 걷고 거들어 줄 것은 없다고 하여도 짐이 다 실리는 동안 아래층 사무실에 남아 있어서 그들의 이사하는 모양을 바라보고 있었다.

하나

사무실에서 일을 보는 늙은 강영감이 제법 위아래로 오르내리며 짐을 챙겨도 주고 양복장이며 책장이며 탁자며 하는 육중한 것은 한 귀를 맞들어서 인부와 회사원과 함께 운반에 힘을 돕기도 하였다. 짐을 대충 실어 놓고 회사원은 아내와 같이 사무실로 들어왔다. "부금(敷金) 일백오 원 중에서 이번 달 치가 오늘까지 이십팔 원, 그것을 제하고 칠십칠 원이올시다." 미리 준비해 두었던 지폐를 손금고에서 꺼내서 최무경이는 그것을 회사원에게로 건네었다.

회사원은 한 손으로 받아서 약간 치켜들듯 하여 사의를 표하고 그것을 그대로 주머니에 넣으려고 한다. "세어 보세요." 그러한 말에 회사원은, 무어 세어 보나마나 하는 표정을 지어 보았으나 다시 어떻게 생각하였는지 넣으려던 지폐를 꺼내서 불빛에다 대고 손가락에 침도 묻히지 않으면서 한장 두장 세어 보고 있다. "꼭 맞습니다." 하고 낯을 들었을 때 무경이는 펜과 영수증을 놓으면서, "영수증이올시다. 사인하시고 도장 쳐주십시오. 수입인지는 아파트 쪽에서 한턱내었습니다." 하고는 회사원의 아내를 바라보며 웃었다. 젊은 아내는 무경이의 웃음에 따라서 흰 이를 내놓고 웃었다.

"고맙습니다." 영수증을 받아서 서류와 함께 금고에 챙긴 뒤에 무경이는 두 신혼부부의 낯을 새삼스레 쳐다보았다. 행복에 넘친 듯한 얼굴들이다. 진부한 형용이지만 역시 행복에 넘쳐 있는 표정이라는 말이 제일 적절할 것처럼 무경이는 생각하는 것이다. "저어 돈암정 바로 삼선평이올시다. 거기서 바른쪽으로 향해서 들어가면 새로 분할한 주택지가 있습니다. 큰 골목으로 접어들어서 다시 셋째 번 골목 둘째 집이 저희들 집이올시다. 사백오십번지의 십칠호. 한번 교외에 산보 나오시는 일이 계시건 찾아 주시기 바랍니다."

아무리 총명한 사람일지라도 이러한 지도의 설명을 잊지 않을 사람이 없을 것이건만 사람들은 노상에서 만난 친구들께 곧잘 이러한 방식으로 저의 집의 주소를 가르쳐 준다. 그러나 듣는 사람도 또 지금 말하는 설명을 모두 머릿속에 챙겨 넣기나 한 듯이, "네 네, 한번 나가면 꼭 들르겠습니다." 하고 대답하는 것이었다. 신접살림이라 무어든 간 새로 준비했을 것이니 홀아비살림 때에 쓰던 것으로 소용이 없을 것은 공연히 짐이나 된다고 이렇게 내버려두고 가는 것이리라, 강영감은 그것을 모아다가 넝마장수에게 팔기도 하고 저의 집에 가져다 쓰기도 하는 것이었다.


사용 방법

data 속성으로

화면 상단 탐색막대에 스크롤 추적 기능을 넣으려면, 추적할 대상 (대부분 body) 태그에 data-spy="scroll"를 더하고 data-target=".navbar"로 탐색막대를 선택한다. .nav 화면 구성요소에도 스크롤 추적을 사용할 수 있다.

<body data-spy="scroll" data-target=".navbar">...</body>

자바스크립트로

자바스크립트로 스크롤 추적을 부른다.

$('#navbar').scrollspy()
주의! 탐색막대 링크는 유효한 id 대상이 있어야 한다. 예를 들어, <a href="#home">대문</a>은 어딘가 <div id="home"></div> 식의 dom에 대응해야 한다.

메소드

.scrollspy('refresh')

DOM에서 태그를 추가하거나 빼면서 스크롤 추적을 사용한다면, 이렇게 refresh 메소드를 호출해야 한다.

$('[data-spy="scroll"]').each(function () {
  var $spy = $(this).scrollspy('refresh')
});

옵션

data 속성과 자바스크립트 모두 옵션을 지정할 수 있다. data 속성 사용시 data-offset="" 처럼 data- 뒤에 옵션 이름을 붙인다.

이름 자료형 기본값 설명
offset number 10 스크롤 위치를 계산할 때 상단에 추가할 픽셀.

이벤트

이벤트 설명
activate 이 이벤트는 스크롤 추적이 새 항목을 선택할 때 발동한다.

탭 예제

내용이 있는 판들 사이를 전환하는 빠르고 동적인 탭 기능을 더한다. 심지어 드롭다운 메뉴도 탭으로 동작한다.

미스터 방의 증조가 타관에서 떠들어온 명색 없는 사람이었다. 그 조부가 고을의 아전을 다녔다. 그 아비가 짚신장수였다. 칠십에, 고로롱고로롱, 아직도 살아 있지만, 시방도 짚신 곱게 삼기로 고을에서 첫째가는 방첨지가 바로 그였다. 그러나마 삼십을 바라보도록 남의 집 머슴살이로, 이집 저집 살고 다니는 코삐뚤이 삼복이었다. 물론 낫 놓고 기역자도 못 그리는 판무식이었다. 백주사는 생각하자니 속으로 이렇게 분개스럽지 않을 수가 없었다.

백주사는 생각하자니 속으로 이렇게 분개스럽지 않을 수가 없었다. 그러나 일변으로는, 그러던 코삐뚤이 삼복이가 그야말로 선영이 명당엘 들었단 말인지, 무슨 조화를 지녔단 말인지, 불과 몇 달지간에 이렇게 훌륭히 되고, 부자가 되고, 미스터 방인지 구리다 방인지가 되고 하여 가지고는, 갖은 호강 다 하며 천하에 무설 것이 없고 기광이 나서 막 이러니, 한편 생각하면 신기하기도 하고 부럽기도 하고 또한 안타깝기도 하였다. '사람의 운수란 참 모를 일이야.' 백주사는 속으로 절절히 이렇게 탄복도 아니치 못하였다. 코삐뚤이 삼복의 이 눈부신 발신은, 그러나 백주사가 희한히 여기는 것처럼 무슨 명당 바람이 났다거나 조화를 지녔다거나 그런 신기한 곡절이 있는 바가 아니요, 지극히 간단하고도 수월한 것이었었다. '사람의 운수란 참 모를 일이야.'


사용 방법

자바스크립트로 켜고 끄는 탭을 만든다. 탭마다 따로 만들어야 한다.

$('#myTab a').click(function (e) {
  e.preventDefault();
  $(this).tab('show');
})

여러 방법으로 개별 탭을 지칭할 수 있다.

$('#myTab a[href="#profile"]').tab('show'); // 이름으로 탭 선택
$('#myTab a:first').tab('show'); // 첫번째 탭 선택
$('#myTab a:last').tab('show'); // 마지막 탭 선택
$('#myTab li:eq(2) a').tab('show'); // 세번째 탭 선택 (순서는 0부터)

마크업

자바스크립트를 전혀 작성하지 않고 태그에 data-toggle="tab" 혹은 data-toggle="pill"을 명시하기만 하면 탭이나 알약 탐색이 생긴다. 탭 ulnavnav-tabs 클래스를 추가하면 부트스트랩 탭 스타일이 적용된다.

<ul class="nav nav-tabs">
  <li><a href="#home" data-toggle="tab">대문</a></li>
  <li><a href="#profile" data-toggle="tab">프로필</a></li>
  <li><a href="#messages" data-toggle="tab">메시지</a></li>
  <li><a href="#settings" data-toggle="tab">설정</a></li>
</ul>

메소드

$().tab

탭 태그와 탭내용을 보여준다. 탭은 DOM의 탭내용을 지칭하는 data-target이나 href가 필요하다.

<ul class="nav nav-tabs" id="myTab">
  <li class="active"><a href="#home">대문</a></li>
  <li><a href="#profile">프로필</a></li>
  <li><a href="#messages">메시지</a></li>
  <li><a href="#settings">설정</a></li>
</ul>

<div class="tab-content">
  <div class="tab-pane active" id="home">...</div>
  <div class="tab-pane" id="profile">...</div>
  <div class="tab-pane" id="messages">...</div>
  <div class="tab-pane" id="settings">...</div>
</div>

<script>
  $(function () {
    $('#myTab a:last').tab('show');
  })
</script>

이벤트

이벤트 설명
show 이 이벤트는 탭 show를 호출했지만 새로운 탭이 보이기 전에 발동한다. event.target은 새로운 탭을 지칭하고, event.relatedTarget은 (있다면) 이전 탭을 지칭한다.
shown 이 이벤트는 탭이 완전히 보일 때 발동한다. event.target은 새로운 탭을 지칭하고, event.relatedTarget는 (있다면) 이전 탭을 지칭한다.
$('a[data-toggle="tab"]').on('shown', function (e) {
  e.target // 새로 선택된 탭
  e.relatedTarget // 이젠 탭
})

사용예

제이슨 프레임이 만든 훌륭한 jQuery tipsy 플러그인에서 영감을 받았다. 그림을 의존하지 않고 CSS3로 애니메이션을 하며 data 속성을 제목으로 사용하도록 툴팁을 변경했다.

성능상 이유 때문에 툴팁과 팝오버 data api는 동의가 필요하다. 직접 이들 플러그인을 초기화해야 한다.

툴팁을 보려면 링크 위로 마우스를 올린다.

어제 아침을 멀건 죽 한 보시기로 때우고, 점심은 늘 없어왔거니와 저녁과 오늘 아침을 끓이지 못하였으니, 하루낫 하룻밤이요 꼬바기 세 끼를 굶은 참이었다. 그러니, 시장하긴들 조옴 시장하련마는, 굶기에 단련이 되어 그런지 글에 정신이 쏠리어 그런지, 혹은 참으며 내색을 아니하여 그러는지, 아뭏든 허생은 별로 시장하여 하는 빛이 없고, 글 읽는 소리도 한결같이 낭랑하다. 서울 남산 밑 묵적골이라고 하면, 가난하고 명색 없는 양반 나부랑이와 궁하고 불우한 선비와 이런 사람들만 모여 살기로 예로부터 이름난 동네였다. 집이라는 것은 열이면 열 다 쓰러져가는 오막살이 초가집이 몇해씩을 이엉을 덮지 못하여 지붕은 움푹움푹 골이 패이고, 비가 오면 철철 들이 새고 하였다.

네가지 방향

input 그룹 속 툴팁

부트스트랩 input 그룹에서 툴팁과 팝오버를 사용한다면, 원하지 않는 부작용을 막기위해 (아래에서 설명) container 옵션을 사용해야 한다.


사용 방법

자바스크립트로 툴팁을 켜고 끈다.

$('#example').tooltip(options)

옵션

data 속성과 자바스크립트 모두 옵션을 지정할 수 있다. data 속성 사용시 data-animation="" 처럼 data- 뒤에 옵션 이름을 붙인다.

이름 자료형 기본값 설명
animation boolean true 툴팁에 css 페이드 전환을 적용한다
html boolean false 툴팁에 html을 넣는다. false이면, jquery의 text 메소드를 사용하여 dom에 내용을 넣는다. XSS 공격을 걱정한다면 html을 사용하지 마라.
placement string | function 'top' 툴팁의 위치 - top | bottom | left | right
selector string false 선택자를 지정하면, 해당 대상이 툴팁 객체를 담당한다
title string | function '' `title` 태그가 없을 때 제목으로 사용할 기본값
trigger string 'hover focus' 툴팁 동작 방식 - click | hover | focus | manual. 여러 종류를 공백으로 구분하여 사용할 수 있다.
delay number | object 0

툴팁을 보이고 숨기는 지연 시간 (ms 단위) - manual 동작 방식은 해당 없음

숫자를 사용하면, 숨기고 보일 때 모두 같은 지연 시간을 적용한다

객체는 이렇게 사용한다. delay: { show: 500, hide: 100 }

container string | false false

툴팁을 특정 태그에 붙인다 container: 'body'

주의! data 속성을 사용하여 툴팁마다 다른 옵션을 지정할 수 있다.

마크업

<a href="#" data-toggle="tooltip" title="첫번째 툴팁">여기에 마우스 올림</a>

메소드

$().tooltip(options)

태그들에 툴팁 처리자를 붙인다.

.tooltip('show')

태그의 툴팁을 보인다.

$('#element').tooltip('show')

.tooltip('hide')

태그의 툴팁을 숨긴다.

$('#element').tooltip('hide')

.tooltip('toggle')

태그의 툴팁을 켜고 끈다.

$('#element').tooltip('toggle')

.tooltip('destroy')

태그의 툴팁을 숨기고 파괴한다.

$('#element').tooltip('destroy')

사용예

아이패드와 비슷하게, 부가 정보를 담은 모든 태그에 작은 내용을 덧붙인다. 팝오버를 보이려면 버튼 위로 마우스를 가져간다. 사용하려면 툴팁이 필요하다.

정적 팝오버

top, right, bottom, left, 네가지 정렬 옵션이 있다.

Popover top

자는 운장, 허둥 출신으로 장 비·유 비와 함께 의형제를 맺었다. 한때 조 조에게 포로가 되어 우대를 받고 한수정후로 봉함받았다.

Popover right

자는 운장, 허둥 출신으로 장 비·유 비와 함께 의형제를 맺었다. 한때 조 조에게 포로가 되어 우대를 받고 한수정후로 봉함받았다.

Popover bottom

자는 운장, 허둥 출신으로 장 비·유 비와 함께 의형제를 맺었다. 한때 조 조에게 포로가 되어 우대를 받고 한수정후로 봉함받았다.

Popover left

자는 운장, 허둥 출신으로 장 비·유 비와 함께 의형제를 맺었다. 한때 조 조에게 포로가 되어 우대를 받고 한수정후로 봉함받았다.

자바스크립트와 data 속성값으로 팝오버를 만들기 때문에 보여줄 마크업이 없다.

라이브 시연

네가지 방향


사용 방법

자바스크립트로 팝오버를 만드는 방법이다.

$('#example').popover(options)

옵션

data 속성과 자바스크립트 모두 옵션을 지정할 수 있다. data 속성 사용시 data-animation="" 처럼 data- 뒤에 옵션 이름을 붙인다.

이름 자료형 기본값 설명
animation boolean true 팝오버에 css 페이드 전환을 적용한다
html boolean false 팝오버에 html을 넣는다. false이면, jquery의 text 메소드를 사용하여 dom에 내용을 넣는다. XSS 공격을 걱정한다면 html을 사용하지 마라.
placement string | function 'right' 팝오버의 위치 - top | bottom | left | right
selector string false 선택자를 지정하면, 해당 대상이 팝오버 객체를 담당한다
trigger string 'click' 팝오버 동작 방식 - click | hover | focus | manual
title string | function '' `title` 속성이 없을 때 제목으로 사용할 기본값
content string | function '' `data-content` 속성이 없을 때 내용으로 사용할 기본값
delay number | object 0

팝오버를 보이고 숨기는 지연 시간 (ms 단위) - manual 동작 방식은 해당 없음

숫자를 사용하면, 숨기고 보일 때 모두 같은 지연 시간을 적용한다

객체는 이렇게 사용한다. delay: { show: 500, hide: 100 }

container string | false false

팝오버를 특정 태그에 붙인다 container: 'body'

주의! data 속성을 사용하여 팝오버마다 다른 옵션을 지정할 수 있다.

Markup

성능상 이유 때문에 툴팁과 팝오버 data api는 동의가 필요하다. 사용하고 싶다면 selector 옵션을 설정하라.

메소드

$().popover(options)

태그들에 사용할 팝오버를 초기화한다.

.popover('show')

태그의 팝오버를 보인다.

$('#element').popover('show')

.popover('hide')

태그의 팝오버를 숨긴다.

$('#element').popover('hide')

.popover('toggle')

태그의 팝오버를 켜고 끈다.

$('#element').popover('toggle')

.popover('destroy')

태그의 팝오버를 숨기고 파괴한다.

$('#element').popover('destroy')

경고 예제

이 플러그인은 모든 경고문에 닫기 기능을 더한다.

어이쿠! 안색이 썩 좋아보이지 않으니 검사를 받아보는게 좋겠다.

이럴수가! 오류가 났다!

이것저것을 바꾸고 다시 시도하라. 85개 또는 88개의 건반을 손가락 끝으로 눌러 소리를 낸다. 표현력이 풍부하여 독주·협주·실내악의 구성악기 등으로 널리 쓰인다.

이 행동을 실행 아니면 이것을 함


사용 방법

자바스크립트로 경고 닫기를 만든다.

$(".alert").alert()

마크업

닫기 버튼에 data-dismiss="alert"를 추가하기만 하면 경고에 닫기 기능이 자동으로 생긴다.

<a class="close" data-dismiss="alert" href="#">&times;</a>

메소드

$().alert()

모든 경고에 닫기 기능을 단다. 경고를 닫을 때 애니메이션 효과를 주려면 미리 .fade.in 클래스를 적용한다.

.alert('close')

경고를 닫는다.

$(".alert").alert('close')

이벤트

부트스트랩 경고 클래스는 경고 기능과 연결된 몇가지 이벤트를 가진다.

이벤트 설명
close 이 이벤트는 close 인스턴스 메소드가 불리자마자 발동한다.
closed 이 이벤트는 (css 전환이 끝난 후) 경고가 완전히 닫힐 때 발동한다.
$('#my-alert').bind('closed', function () {
  // 무언가를 한다…
})

사용예

버튼을 가지고 더 많은 작업을 한다. 버튼 상태를 제어하거나 도구 모음 같은 화면 구성요소를 위한 버튼 그룹을 만든다.

버튼 상태

버튼의 진행 상태를 사용하려면 data-loading-text="읽는중..."을 붙인다.

<button type="button" class="btn btn-primary" data-loading-text="읽는중...">읽는 상태</button>

단일 켜고 끄기

한 버튼을 켜고 끄기하려면 data-toggle="button"을 붙인다.

<button type="button" class="btn btn-primary" data-toggle="button">단일 켜고 끄기</button>

Checkbox

btn-group을 checkbox 식으로 만들려면 data-toggle="buttons-checkbox"를 붙인다.

<div class="btn-group" data-toggle="buttons-checkbox">
  <button type="button" class="btn btn-primary">왼쪽</button>
  <button type="button" class="btn btn-primary">중앙</button>
  <button type="button" class="btn btn-primary">오른쪽</button>
</div>

Radio

btn-group을 radio 식으로 만들려면 data-toggle="buttons-radio"를 붙인다.

<div class="btn-group" data-toggle="buttons-radio">
  <button type="button" class="btn btn-primary">왼쪽</button>
  <button type="button" class="btn btn-primary">중앙</button>
  <button type="button" class="btn btn-primary">오른쪽</button>
</div>

사용 방법

자바스크립트로 버튼을 만드는 방법이다.

$('.nav-tabs').button()

마크업

Data 속성은 버튼 플러그인에 필수이다. 아래 다양한 마크업 종류를 담은 예제 코드를 살펴보라.

옵션

없음

메소드

$().button('toggle')

눌림 상태를 변경한다. 버튼의 눌린 외형을 만든다.

주의! data-toggle 속성을 사용하면 자동으로 켜고 끄는 버튼을 만들 수 있다.
<button type="button" class="btn" data-toggle="button" >…</button>

$().button('loading')

버튼을 읽기 상태로 변경한다. 그러면 버튼을 비활성하고 읽기 문구로 바꾼다. 읽기 문구는 data 속성 data-loading-text를 사용하여 버튼 태그에 정의해야 한다.

<button type="button" class="btn" data-loading-text="무엇을 읽는중..." >...</button>
주의! 파이어폭스는 페이지를 다시 읽어도 비활성 상태를 유지한다. autocomplete="off"를 사용하여 이 문제를 해결한다.

$().button('reset')

버튼 상태를 재설정한다. 원래 문구로 되돌아간다.

$().button(string)

버튼 상태를 재설정한다. data로 정의한 문구를 보여준다.

<button type="button" class="btn" data-complete-text="완료!" >...</button>
<script>
  $('.btn').button('complete')
</script>

숨김 플러그인이란

아코디언과 탐색 같은 숨김 가능한 화면 구성요소에 기본 스타일을 입히고 유연하게 지원한다.

* 전환 플러그인이 필요하다.

아코디언 예제

숨김 플러그인을 사용하여 간단한 아코디언식 위젯을 만들었다.

종래 경영관리(經營管理)라 하면 공업이라든가 또는 사업을 그 대상으로 생각하고 있었다. 따라서 경영에 관한 학문적 연구에 있어서도 병원경영에 대해서는 별다른 실적이 없으며, 이에 대한 관심도 그다지 크지 않았다. 그러나 최근에 와서는 병원의 경영규모가 확대됨에 따라 그 관리도 점차 복잡해졌고, 이에 따라 병원의 합리적 경영관리에 대한 필요성이 일반기업, 예컨대 제조업이나 금융업 등에 비하여 뒤지지 않게 되었다. 다시 말해서 병원의 규모확대는 병원의 합리적 운영·관리의 필요성을 요구하게 되었고, 이에 따라 타기업의 경우와 같이 과학적 사고를 폭넓게 받아들여야 한다.
종래 경영관리(經營管理)라 하면 공업이라든가 또는 사업을 그 대상으로 생각하고 있었다. 따라서 경영에 관한 학문적 연구에 있어서도 병원경영에 대해서는 별다른 실적이 없으며, 이에 대한 관심도 그다지 크지 않았다. 그러나 최근에 와서는 병원의 경영규모가 확대됨에 따라 그 관리도 점차 복잡해졌고, 이에 따라 병원의 합리적 경영관리에 대한 필요성이 일반기업, 예컨대 제조업이나 금융업 등에 비하여 뒤지지 않게 되었다. 다시 말해서 병원의 규모확대는 병원의 합리적 운영·관리의 필요성을 요구하게 되었고, 이에 따라 타기업의 경우와 같이 과학적 사고를 폭넓게 받아들여야 한다.
종래 경영관리(經營管理)라 하면 공업이라든가 또는 사업을 그 대상으로 생각하고 있었다. 따라서 경영에 관한 학문적 연구에 있어서도 병원경영에 대해서는 별다른 실적이 없으며, 이에 대한 관심도 그다지 크지 않았다. 그러나 최근에 와서는 병원의 경영규모가 확대됨에 따라 그 관리도 점차 복잡해졌고, 이에 따라 병원의 합리적 경영관리에 대한 필요성이 일반기업, 예컨대 제조업이나 금융업 등에 비하여 뒤지지 않게 되었다. 다시 말해서 병원의 규모확대는 병원의 합리적 운영·관리의 필요성을 요구하게 되었고, 이에 따라 타기업의 경우와 같이 과학적 사고를 폭넓게 받아들여야 한다.
<div class="accordion" id="accordion2">
  <div class="accordion-group">
    <div class="accordion-heading">
      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
        숨김 가능한 그룹 항목 #1
      </a>
    </div>
    <div id="collapseOne" class="accordion-body collapse in">
      <div class="accordion-inner">
        종래 경영관리...
      </div>
    </div>
  </div>
  <div class="accordion-group">
    <div class="accordion-heading">
      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
        숨김 가능한 그룹 항목 #2
      </a>
    </div>
    <div id="collapseTwo" class="accordion-body collapse">
      <div class="accordion-inner">
        종래 경영관리...
      </div>
    </div>
  </div>
</div>
...

아코디언 마크업 없이 플러그인을 사용할 수도 있다. 다른 태그를 확장하고 숨기는 버튼을 만든다.

<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">
  간단한 숨김
</button>

<div id="demo" class="collapse in"> … </div>

사용 방법

data 속성으로

태그에 data-toggle="collapse"와 a data-target을 붙이기만 하면 숨김 가능한 다른 태그를 제어하게 된다. data-target 속성은 숨김을 적용할 css 선택자를 값으로 받는다. 숨김 가능한 태그에 collapse 클래스를 잊지 마라. 처음에 열려있기를 바란다면 in 클래스도 추가하라.

숨김 가능한 대상을 아코디언처럼 묶어서 관리하려면 data 속성 data-parent="#selector"를 추가한다. 어떻게 동작하는지 시연을 참고하라.

자바스크립트로

이렇게 직접 만들 수 있다.

$(".collapse").collapse()

옵션

data 속성과 자바스크립트 모두 옵션을 지정할 수 있다. data 속성 사용시 data-parent="" 처럼 data- 뒤에 옵션 이름을 붙인다.

이름 자료형 기본값 설명
parent 선택자 false 선택자를 명시하면, 선택 가능한 항목을 보여줄 때 선택자 아래에 있는 숨김 가능한 모든 태그가 닫힌다. (전통적인 아코디언 동작과 유사)
toggle boolean true 호출하면 숨김 가능한 태그를 켜고 닫는다

메소드

.collapse(options)

내용을 숨김 가능한 태그로 만든다. 선택적으로 options 객체를 받는다.

$('#myCollapsible').collapse({
  toggle: false
})

.collapse('toggle')

선택 가능한 태그를 켜고 끈다.

.collapse('show')

선택 가능한 태그를 보인다.

.collapse('hide')

선택 가능한 태그를 숨긴다.

이벤트

부트스트랩 숨김 클래스는 숨김 기능과 연결된 몇가지 이벤트를 가진다.

이벤트 설명
show 이 이벤트는 show 인스턴스 메소드가 불리자마자 발동한다.
shown 이 이벤트는 (css 전환이 끝난 후) 숨김 대상 태그가 사용자에게 완전히 보일 때 발동한다.
hide 이 이벤트는 hide 인스턴스 메소드가 불리자마자 발동한다.
hidden 이 이벤트는 (css 전환이 끝난 후) 숨김 대상 태그가 사용자에게 완전히 사라질 때 발동한다.
$('#myCollapsible').on('hidden', function () {
  // 무언가를 한다…
})

사용예

어떤 종류의 문자 input이라도 순식간에 멋진 자동완성을 붙이는 기본적이며 쉽게 확장가능한 플러그인.

<input type="text" data-provide="typeahead">

한글! 검색 포털에서 볼 수 있는 한글 자소단위 자동완성은 지원하지 않다.

웹브라우저 기본 메뉴가 부트스트랩 자동완성 드롭다운을 가리지 않도록 autocomplete="off"가 필요할 것이다.


사용 방법

data 속성으로

위 사용예와 같이 data 속성을 추가하여 태그에 자동완성 기능을 등록한다.

Via JavaScript

이렇게 직접 자동완성을 만들 수 있다.

$('.typeahead').typeahead()

옵션

data 속성과 자바스크립트 모두 옵션을 지정할 수 있다. data 속성 사용시 data-source="" 처럼 data- 뒤에 옵션 이름을 붙인다.

이름 자료형 기본값 설명
source array, function [ ] 검색할 자료. 문자열의 배열이나 함수가 들어간다. 함수는 input 입력요소값 query와 콜백 process, 이 두 아규먼트를 받는다. 함수는 자료를 직접 반환하는 동기 방식 혹은 process 콜백의 유일한 아규먼트를 통한 비동기 방식으로 사용한다.
items number 8 드롭다운에 보여줄 항목 최대 개수.
minLength number 1 자동완성 제안을 시작할 최소 문자 길이
matcher function 대소문자 무시 항목이 검색에 맞는지 알아보는 메소드. 검색어와 맞추어 볼 item 아규먼트 하나를 받는다. 현재 검색어는 this.query이다. 검색어가 맞다면 boolean true를 반환한다.
sorter function 정확히 일치,
대소문자 구별,
대소문자 무시 순서로
자동완성 결과의 순서를 결정하는 메소드. items 아규먼트 하나를 받고, 변수의 범위는 자동완성 인스턴스이다. 현재 검색어는 this.query로 접근한다.
updater function 선택한 항목을 반환 선택한 항목을 반환하는 메소드. item 아규먼트 하나를 받고, 변수의 범위는 자동완성 인스턴스이다.
highlighter function 기본 일치를 모두 강조 자동완성 결과를 강조하는 메소드. item 아규먼트 하나를 받고, 변수의 범위는 자동완성 인스턴스이다. html을 반환해야 한다.

메소드

.typeahead(options)

input에 자동완성을 초기화한다.

사용예

바로 왼쪽의 탐색이 바로 애픽스 메뉴 플러그인의 결과이다.


사용 방법

data 속성으로

애픽스 메뉴는 추적할 태그에 data-spy="affix"를 붙이기만 하면 된다. 그리고 offset으로 언제 태그 표시를 켜고 끌지 정한다.

<div data-spy="affix" data-offset-top="200">...</div>
주의! 표시할 태그의 위치와 바로 상위 태그의 동작을 관리해야 한다. affix, affix-top, affix-bottom으로 위치를 조절한다. 애픽스 메뉴를 만들 때 페이지의 일반적인 흐름에서 내용이 삭제되어 상위 태그가 숨겨지지는 않는지 확인해야 한다.

자바스크립트로

자바스크립트로 애픽스 메뉴를 만들 수 있다.

$('#navbar').affix()

옵션

data 속성과 자바스크립트 모두 옵션을 지정할 수 있다. data 속성 사용시 data-offset-top="200" 처럼 data- 뒤에 옵션 이름을 붙인다.

이름 자료형 기본값 설명
offset number | function | object 10 스크롤 위치를 계산할 때 상단에 추가할 픽셀. 숫자 하나를 사용하면, 위쪽과 왼쪽에 모두 간격을 적용한다. 한쪽 방향만 원하거나 방향마다 간격을 다르게 주려면, offset: { x: 10 } 같은 객체를 사용한다. 동적으로 (일부 반응형 디자인에 유용) 간격을 지정하려면 함수를 사용한다.