홈으로 홈으로 | 무료회원가입 | 아이디/비번찾기 | 즐겨찾기
추천음악방송메인홈1대1상담음악방송청취
아리랑가요(무료음악채널)
뽕짝아가씨(무료음악채널)
okTrot(무료음악채널)
전통가요(무료음악채널)
미스트롯(무료음악채널)

온라이브스토어(앱다운로드)

환상의뽕짝파티 무료음악
명작트로트메들리 무료음악
트로트메들리관광 무료음악
동영상노래방
가사검색

POP Player
신나는 고스톱
컴퓨터 오목
작은 음악다방
자동러시 웹플레이어신청

보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
jQuery API: Manipulation, Events, Effects, Internals, Utilities
3년 전
Manipulation
DOM의 제어, 갱신 조작
● 내부 삽입
append(content)
: 매치되어진 원소에 주어진 내용을 추가로 삽입한 후 객체 반환
: Return jQuery 객체
<script>
    // p 태그에 내용 추가 -> 결과 : 『중요과목 : 프레임워크』
    $("p").append("<b>프레임워크</b>");
</script>

<p>중요과목: </p>


appendTo(content)
: 매치되어진 원소들의 내용들을 주어진 조건에 맞는 원소에 추가로 삽입한후  객체 반환
: Return jQuery 객체
<script>
    // body 마지막 부분에 제이쿼리 추가
    $("<div><p>제이쿼리</p></div>").appendTo("body");

    // id가 a인 태그의 뒷 부분에 span 태그의 내용을 추가 ->  결과 : 『중요과목 : 프레임워크』
    $("span").appendTo("#a");
</script>

<span>프레임워크</span>
<div id="a">중요과목 :  </div>


prepend(content)
: 매치되어진 원소들에 맨앞에 주어진 내용을 삽입한후 객체를 반환
: Return jQuery 객체
<script>
   $("p").prepend("<b>Hello </b>");
</script>

<p><!--삽입위치-->there friend!</p>


prependTo(content)
: 매치되어진 원소의 내용을 주어진 것에 매치되는 원소의 맨앞에 추가 삽입한후 객체를 반환
: Return jQuery 객체
<script>
    $("span").prependTo("#foo");
</script>

<div id="foo"> <!--삽입위치-->FOO!</div>
<span>I have something to say...</span> //span element는 기존 위치에서 사라짐


● 외부 삽입
after(content)
: 매치되는 모든 원소의 뒤에 주어진 내용을 삽입
: Return jQuery 객체
<script>
    $("p").after("<b>Hello</b>");
</script>

<p>I would like to say: </p>
<!--삽입위치-->


before(content)
: 매치되는 모는 원소의 앞에 주어진 내용 삽입
: Return jQuery 객체
<script>
    $("p").before("<b>Hello</b>");
</script>

<!--삽입위치-->
<p> is what I said...</p>


insertAfter(content)
: 매치되어진 원소들을 주어진 것에 매치되는 원소의 뒤에 삽입한다.
: Return jQuery Object - 피삽입 객체 (앞에 오는 선택자)
<script>
    // <p>태그 객체가 #foo 뒤로 이동한다.
    $("p").insertAfter("#foo");
</script>

<p> is what I said... </p><div id="foo">FOO!</div>


insertBefore(content)
: 매치되어진 원소앞에 주어진 것에 매치된 원소를 삽입한다.
: Return jQuery 객체
<script>
    //<p>태그 객체가 #foo 앞으로 이동한다.
   $("p").insertBefore("#foo");
</script>

<div id="foo">FOO!</div><p>I would like to say: </p>


● 주변 삽입
wrap(html)
: 매치되어진 원소를 주어진 html로서 감싼후 객체를 반환
: Return jQuery 객체
<script>
    // p요소를 지정 div로 둘러싼다.
    $("p").wrap("<div class='wrap'><b></b></div>");
</script>

<p>Test Paragraph.</p>


wrap(elem)
: 매치된 모든 원소를 주어진것에 매치되는 원소로 감싼다.
: Return jQuery 객체    
<script>
    // p요소를 "content" id의 요소로 둘러싼다.
    $("p").wrap($('#content'));
</script>

<p>Test Paragraph.</p><div id="content"></div>


wrapAll(html)
: 매치되는 원소들을 주어진 html로 모두 하나로 감싼다.
: Return jQuery 객체
$("span").wrapAll("<div><div><p><em><b></b></em></p></div></div>");


wrapAll(elem)
: 매치되어진 원소들을 주어진 것에 매치되는 것으로 하나로 감싼다.
: Return jQuery 객체
<script>
    $(document).ready(function(){
       $("p").wrapAll(document.createElement("div"));
    });
</script>

<style type="text/css">
div { border: 2px solid blue; }
p { background:yellow; margin:4px; }
</style>

<p>Hello</p>
<p>cruel</p>
<p>World</p>


wrapInner(html)
: 매치되어진 원소 속의 내용을 주어진 것으로 감싼다.
: Return jQuery 객체  
$("body").wrapInner("<div><div><p><em><b></b></em></p></div></div>");


wrapInner(elem)
: 매치되어진 원소 속의 내용을 주어진 것에 매치된것으로 감싼다.
: Return jQuery 객체  
$("p").wrapInner(document.createElement("b"));


unwrap() : 특정한 부모요소를 제거한다.
<script>
    // <p>태그를 감싸고 있는 <div> 요소를 제거
    $('p').unwrap();
</script>

<div>
    <p>Foo</p>
</div>


● 치환

replaceWith(content)
: 매치되어진 원소를 주어진 내용과 치환한다.
: Return jQuery 객체  
$("button").click(function () {
    $(this).replaceWith("<div>" + $(this).text() + "</div>");
});
//버튼을 클릭하면 해당객체의 텍스트만 가져와 <div>객체로 치환한다.


replaceAll(selector)
: 매치되어진 것들을 주어진 것에 매치되는 것에 모두 바꿈
: replaceWith()와 비슷하지만 source/target의 위치가 반전되어 있다.
: Return jQuery
$("<b>Paragraph. </b>").replaceAll("p");


● 삭제
empty() : 내용을 비운다.
//<p> element의 자식 element, 텍스트, html이 사라진다.
$("button").click(function() {
    $("p").empty();
});

remove([expr]) : 삭제한다. empty()와 다르게 element 자체가 사라진다.
$("button").click(function () {
    $("p").remove();
});

detach( [ selector ] )

동적인 조작을 돕기 위해서 detach() 라는 새로운 메서드가 추가되었다. 이는 DOM에서 특정 요소를 제거하는 역할을 한다는 부분에서는 remove()와 기능적으로 동일하지만, 해당 요소의 데이터(이벤트 등)를 제거하지 않는다는 주요한 차이가 있다. 그렇기에, 이는 일시적으로 요소를 DOM에서 제거했다가 다시금 DOM에 추가해야 하는 경우 매우 유용하다.

재사용될 만한 요소에만 사용하는 것이 중요하다. DOM에서 요소를 제거하거나 추가하는 일이 빈번하게 발생할 때 매우 유용하게 사용할 수 있다.


● 카피
http://api.jquery.com/clone/
clone([withDataAndEvents])
withDataAndEvents: 요소에 바인드된 이벤트를 복사에 포함할지 여부
<script>
    $(document).ready(function(){
        $("button").click(function(){
            $(this).clone().insertAfter(this); // 1...
            $(this).clone(true).insertAfter(this); // 2...
            // 2는 해당 노드에 바인딩된 이벤트까지 복사한다. (deep copy)
        });
    });
</script>

<button>Clone Me!</button>

사용하기 전에 반드시 요소의 어디까지 복사되는지 확인해야한다.

clone()은 기본적으로 요소뿐만 아니라 데이터도 함께 복사한다. 예를 들어 text inputbox의 경우 입력된 value도 같이 복사한다




Events

● Page Load
ready(handler) : DOM 이 로드 되어 조작·해석이 가능하게 된 타이밍에 함수를 실행
load(): load()는 이미지등 페이지가 전부 다운로드 된 다음에 실행. 즉, onload와 같이 페이지가 모두 로드완료된 후 코드를 실행시키고자 할 때에는 아래와 같이 표현한다.
.load()는 jQuery 1.8에서 폐기됨

window.onload = function(){ alert("onload1"); }
window.onload = function(){ alert("onload2"); } // 마지막것 한번만 실행

$(document).ready(function(){
  alert("ready1");
})
$(document).ready(function(){
  alert("ready2");
})

// 실행결과
// ready1
// ready2
// onload2
// 브라우저에 따라 항상 실행순서가 바뀔 수 있다.


● Event Handling
bind(eventType, [eventData], handler(eventObject))
: 일치된 집합에 있는 모든 엘리먼트에 지정한 이벤트 타입의 핸들러로 전달된 함수를 할당한다.
: eventType - (String)핸들러를 할당할 이벤트 타입의 이름
: eventData - (Object)핸들러 함수에서 사용하도록 Event 인스턴스에 data라는 프로퍼티로 제공되는 데이터. 생략 가능
: return 확장 집합
// 프로퍼티 접근제어자(.)를 통해 메서트 호출을 연속으로 정의한다. (method chaining)
$('img').bind('click', function(event) {
    alert('안녕1!');
}).bind('click', function(event) {
    alert('안녕2!');
}).bind('click', function(event){
    alert('안녕3!');
});

// a 라는 id를 가지고 있는 요소를 마우스 클릭 시 body에 test_class라는 CSS class를 추가한다.
$(function(){
    $('#a').bind('click', function(){
        $('body').addClass('test_class');
    });
});


bind(events) : bind를 이용하여 이벤트를 여러개 추가할 수 있다.
// a 라는 id를 가지고 있는 요소를 마우스 오버시 '마우스오버'라는 경고 문구가 나타나고
마우스 클릭시 '클릭'이라는 경고 문구가 나타난다.
$(function() {
    $("#a").bind({
        click : function() {
            alert("클릭");
        },
        mouseover : function() {
            alert("마우스오버");
        }
    });
});


one(eventType, [eventData], handler(eventObject))
: 일치된 모든 엘리먼트에 지정한 이벤트 타입의 핸들러로 전달된 함수를 할당한다.
: 실행된 뒤 삭제된다. 즉, 페이지당 단 한번만 실행된다.
: eventType - (String)핸들러를 할당할 이벤트 타입의 이름
: eventData - (Object)핸들러 함수에서 사용하도록 Event 인스턴스에 data라는 프로퍼티로 제공되는 데이터. 생략 가능
: handler - (Function)이벤트 핸들러로 할당될 함수
: return 확장 집합
// a 라는 id를 가지고 있는 요소를 클릭 하면
//one CSS class를 추가하고 바로 click 이벤트가 해제된다.
$(function(){
    $('#a').one('click', function(){
        $('body').addClass('one');
    });
});


trigger(eventType, extraParamters) : 각 요소의 인수로 건네준 이벤트를 한번 실행
// a라는 id를 가진 요소의 click 이벤트를 발생시킨다.
$(function(){
    $('#a').trigger('click');
});

// trigger() 메서드 기능을 간소화하여 사용하였다.
$(function(){
    $('#a').click();
});

$(function(){
$("#div1").click(function(){
    alert("엣헴");
});

$("#div2").one("click", function(){
    alert("난 한번만 실행한다");
});

$("#div1").trigger("click");  
    //#div1.click 이벤트를 페이지 로드시에 발생시킨다.
    //위에서 정의한 이벤트함수를 강제로 실행하는 용도로 쓰인다.
});


triggerHandler(eventType, extraParamters)

: 요소의 이벤트를 실행하지만 핸들러에 들어가 있는 함수만을 실행한다. 브라우저가 디폴트로 가지고 있는 작동은 행해지지 않는다.


unbind(eventType, [eventData], handler(eventObject))/unbind(event)
: 확장 집합의 모든 엘리먼트에서 전달된 매개변수에 따라 이벤트 핸들러를 선택적으로 제거한다.
: eventType - (String)매개변수를 제공하면 지정된 이벤트 타입에 할당된 리스너만 제거한다.
: handler(eventObject): (Function)매개변수를 제공하면 지정된 리스너와 동일한 것만 제거한다.
: event - (Event) Event인스턴스의 정보로 알 수 있는 이벤트가 발생했을 때 호출될 리스너를 제거한다.
: return 확장 집합
// a 라는 id를 가지고 있는 요소를 마우스 클릭시 test의 기능인 body에 test_class라는
// CSS class를 추가하는 기능을 만든후 unbind 메서드를 이용하여 다시 그 기능을 제거하고 있다.
$(function(){
    var test = function(){
        $('body').addClass('test_class');
    };
    $('#a').click(test);
    $('#a').unbind('click', test);
});


click(handler(eventObject))
: 핸들러를 이벤트에 연결하는 것은 흔한 작업이기 때문에, jQuery는  보다 더 간단하고 명료한 방식의 간소화된 이벤트 메서드를 제공하고 있다.
<script>
    $(function(){
        // a 라는 id를 가지고 있는 요소를 클릭시 body에 test_class라는 CSS class를 추가시킨다.
        // 1...
        $('#a').click(function(){
            $('body').addClass('test_class');
        });

        // 2...
        $('table tr:gt(0) td').click(
               alert($(this).text());
          );

        $('table').append("<tr><td>테스트</td></tr>");  // click 이벤트 적용되지 않음
    });
</script>

<table border="1">
  <tr><td>제목</td></tr>
  <tr><td>자바</td></tr>
  <tr><td>프레임워크</td></tr>
</table>

click() : click 이벤트를 실행 시킨다.
// a 라는 id를 가지고 있는 요소의 click 이벤트를 실행시킨다.
$(function(){
    $('#a').click();
});



● Interaction Helpers
hover(handerIn(eventObject), handerOut(eventObject))
: 요소에 마우스가 이동 했을 때의 작동을 설정한다. out은 마우스가 벗어났을 때 호출
// a 라는 id 가지고 있는 요소에 마우스 커서가 들어가면 hover CSS class 를 추가하고 마우스가
// 떠나면 hover CSS class를 제거 한다.
$(function(){
      $('#a').hover(function(){
        $('body').addClass('hover');
      }, function(){
          $('body').removeClass('hover');
      });
});


● on() / off()
on(events [, selector] [, data], handler(eventObject) )
on(events-map [, selector] [, data])
jQuery 1.7.x 버전 이상에서는 향상된 메소드인 .on() 메소드를 제공한다. 1.7.x 버전 이상에서는 bind(), live(), delegate() 메소드들도 모두 on 메소드로 작동하도록 소스코드가 바뀌었으며 성능 문제로 인해 문제가 발생하는 경우 1.7.x 이상의 버전으로 교체한다.
on을 이용하면 문서 로딩 후 새롭게 만들어진 태그에 접근할 수 있다.
bind() : $(selector).on(eventName,eventHandler)
delegate() : $(ancestor selector).on(eventName, selector,eventHandler)
live() : $(selector).on(eventName, eventHandler)

live()는 1.7부터 폐기
<script type="text/javascript">
// ex) Header를 마우스 클릭시 복제
// 밑 3가지 중 하나를 선택.
    $(document).ready(function() {  
        // 1. bind()일 경우
        $('div').on('click',function() {
            $(this).clone().appendTo('body'); //body에 clone()메서드 이용 복제
        });

        // 2. delegate()일 경우 조금 다르다.
        $('body').on('click','div',function(){
            $(this).clone().appendTo('body'); //body에 clone()메서드 이용 복제
        });

        // 3. live()일 경우(이벤트에 대해서 핸들러를 등록)
        $(document).on('click','div',function() {
            $(this).clone().appendTo('body'); //body에 clone()메서드 이용 복제
        });
    });
</script>

<div id="wrap">
    <h1>Header</h1>
</div>

events-map은 JSON 혹은 map이 올 수 있다.
$(document).on({
    click : function() {
        alert("클릭");
    },
    mouseover : function() {
        alert("마우스오버");
    }    
}, "button");


.off( events [, selector] [, handler(eventObject)] )
.off( events-map [, selector] )
: 이벤트 제거
$("#btn").click(function(){
    $(document).off("click", "div");
});
//div click 이벤트에 해당하는 함수를 제거해 더 이상 해당 함수가 실행되지 않는다.


● Ajax Events
ajaxComplete(handler()) : AJAX request의 송신 완료시에 실행되는 함수를 지정한다.
ajaxError(handler()) : AJAX request의 송신 실패시에 실행되는 함수를 지정한다.
ajaxSend(handler()) : AJAX request의 송신전에 실행되는 함수를 지정한다.
ajaxStart(handler()) : AJAX request의 송신 개시에 active request가 없는 경우에 실행되는 함수를 지정한다.
ajaxStop(handler()) : AJAX request의 송신 종료시에, 실행되는 함수를 지정한다.
ajaxSuccess(handler()) : AJAX request의 송신이 성공시에 실행되는 함수를 지정한다.

$(document).ajaxStart(function() {
    console.log('ajax stated');
}).ajaxComplete(function(){
    console.log('ajax complete');
});


※ 1.9.x 이후 버전에서는 ajax event 트리거를 document에만 바인드할 수 있다.2
http://jquery.com/upgrade-guide/1.9/#ajax-events-should-be-attached-to-document

● Event 인스턴스 프로퍼티  
altKey : Alt 키가 눌리면 true, 아니면 fasle
ctrlKey : Ctrl 키가 눌리면 true, 아니면 fasle
data : bind() 커맨드의 두 번째 매개변수로 전달된 값
KeyCode : 눌린 키를 반환
metaKey : 메타키가 눌리면 true, 아니면 false
pageX : 마우스 이벤트의 경우 이벤트가 발생한 x좌표
pageY : 마우스 이벤트의 경우 이벤트가 발생한 y좌표
relatedTarget : 마우스 이벤트의 경우 커서가 들어가거나 나온 엘리멘트
screenX : 마우스 이벤트의 경우 스크린에서 이벤트가 발생한 x좌표
screenY : 마우스 이벤트의 경우 스크린에서 이벤트가 발생한 y좌표
shiftKey : Shift 키가 눌리면 true, 아니면 fasle
target : 이벤트가 발생한 엘리먼트
type : 이벤트 타입을 명시
which : 이벤트 키 코드 또는 마우스 눌려진 값(왼쪽1, 중간2, 오른쪽3)

$(function(){
   $('.test').keypress(function(event){
       if (event.which && (event.which  > 47 && event.which  < 58 || event.which == 8)) {
           alert('숫자임!');
       } else {
          alert('숫자아님!');
          event.preventDefault();
       }
   });
});
     :
<div class="test">
  <input type="text"/>
</div>

ie 계열의 Browser에서는 event.returnValue = false;
그 외의 Browser에서는 event.preventDefault()를 이용해 기본 이벤트를 취소 한다.


● Event Helpers
blur() : 각 요소의 blur 이벤트를 실행. blur 이벤트는 요소가 마우스등의 pointing, device나 탭 키등에서 포커스를 잃은 때 발생.
blur(handler(eventObject)) : 각 요소에 blur이벤트를 설정

change()
: 각 요소의 change 이벤트를 실행. change 이벤트는 포커스를 잃은 상태의 input요소가 포커스를 얻고, 값의 변경을 완료했을 때에 실행된다.
change(handler(eventObject)) : 각 요소에 change 이벤트를 설정

$("select").change(function () {
    // ...
});


click() : 각 요소의 click 이벤트를 실행
click(handler(eventObject)) : 각 요소에 click 이벤트를 설정

$("p").click(function () {
    // ...
});


dblclick() : 각 요소의 dblclick 이벤트를 실행
dblclick(handler(eventObject)) : 각 요소에 dblclick 이벤트를 설정

error() : 각 요소의 error 이벤트를 실행. 브라우저의 디폴트의 error의 작동과 이것에 bind된 모든 함수가 실행된다.
error(handler(eventObject)) : 각 요소에 error 이벤트를 설정
focus() : 각 요소의 focus 이벤트를 실행. focus 이벤트는 마우스등의 pointing, device 나 탭 키로 요소가 포커스를 받았을 때에 실행한다.
focus(handler(eventObject)) : 각 요소에 focus 이벤트를 설정
focusin( handler(eventObject)) / focusin( [ eventData ], handler(eventObject))
focusout( handler(eventObject) ) / focusout( [ eventData ], handler(eventObject))
: "focus"와 "blur" 이벤트를 위임한 것으로 "focusin"과 "focusout"으로 명명한 것 이다.
: 특정한 요소 및 자식 요소에서 일어나는 액션을 감지하여 이벤트를 발생한다.

$('form').focusin(function() {
    $(this).addClass('focused');
}).focusout(function() {
    $(this).removeClass('focused');
});
//주의해야 할 점은 "bubble"이 발생하지 않는 다는 것이다.
//즉 부모 요소는 대상 요소보다 먼저 트리거되는 것을 의미한다.


keydown() : 각 요소의 keydown 이벤트를 실행
keydown(handler(eventObject)) : 각 요소에 keydown 이벤트를 설정
keypress() : 각 요소의 keypress 이벤트를 실행
keypress(handler(eventObject)) : 각 요소에 keypress 이벤트를 설정
keyup() : 각 요소의 keyup 이벤트를 실행
keyup(handler(eventObject)) : 각 요소에 keyup 이벤트를 설정
mousedown(handler(eventObject)) : 각 요소의 mousedown 이벤트를 설정
mousemove(handler(eventObject)) : 각 요소의 mousemove 이벤트를 설정
mouseout(handler(eventObject)) : 각 요소의 mouseout 이벤트를 설정
mouseover(handler(eventObject)) : 각 요소의 mouseover 이벤트를 설정
mouseup(handler(eventObject)) : 각 요소의 mouseup 이벤트를 설정
resize(handler(eventObject)) : 각 요소의 resize 이벤트를 설정
scroll(handler(eventObject)) : 각 요소의 scroll 이벤트를 설정
select() : 각 요소의 select 이벤트를 실행.  select 이벤트는 텍스트 에리어의 문자열을 선택 상태로 하거나 선택 범위를 변경했을 때에 실행 한다.
select(handler(eventObject)) : 각 요소에 select 이벤트를 설정
submit() : 각 요소의 submit 이벤트를 실행
submit(handler(eventObject)) : 각 요소에 submit 이벤트를 설정
load(handler(eventObject)) : 각 요소의 load 이벤트를 설정  jQuery 1.8에서 삭제(Deprecated)
unload(handler(eventObject)) : 각 요소에 unload 이벤트를 설정  jQuery 1.8에서 삭제(Deprecated)


Effects

● Basics
show() : 각 요소가 보이지 않는 경우 표시한다.
show([speed], [callback])
: 표시시의 스피드를 설정할 수 있다. 또, 표시가 완료했을 때에 호출하는 함수를 설정할 수도 있다.

//a의 id를 가진 요소를 클릭하면 b라는 id를 가진 요소가 나타난다. speed를 사용시 정한 시간동안
//요소의 높이를 맨 위로부터 바닥까지, 너비는 왼쪽에서 오른쪽까지, 불투명도는 0에서 1까지 증가시킨다.
$("button").click(function () {
    $("p").show("slow");
});


hide() : 각 요소를 보이지 않게 한다.
: Return jQuery Object - 대상 객체
hide([speed], [callback])
: 비표시시의 스피드를 설정할 수 있다. 또, 비표시 되었을 때에 호출하는 함수를 설정할 수도 있다.
// a라는 id를 가진 요소를 클릭하면 b라는 id를 가진 요소가 사라진다. speed를 사용시 요소의
//높이, 너비, 불투명도를 정한 시간동안 0까지 감소시키고 display:none 상태를 적용시킨다.
$("button").click(function () {
    $("p").hide("slow");
});


.toggle([duration] [, callback])
.toggle([duration] [, easing] [,callback])
.toggle( showOrHide )
: 가시성을 컨트롤하는 .toggle()로 지정된 요소의 표시/비표시를 호출될 때 마다 반대의 값으로 변경한다.
duration: 밀리세컨드 시간 값. 가시성 속성이 변경되는 속도를 의미한다. 가령 'slow'의 경우 서서히 보여지거나 사라진다.
easing: 토글 특수 효과
callback 콜백 함수
http://www.websamo.com/bbs/board.php?bo_table=jquery_api&wr_id=191&sfl=wr_subject&stx=toggle&sop=and

$("button").click(function () {
    $("p").toggle(); //show(), hide() 함수가 토글 시 매번 교차호출
});


.toggle(callback, callback [, callback)
: 지정된 콜백함수를 교차 호출한다. 가시성 컨트롤과는 관련이 없다.
http://www.websamo.com/bbs/board.php?bo_table=jquery_api&wr_id=168&sfl=wr_subject&stx=toggle&sop=and

.toggle(callback, callback [, callback)은 1.8에서 폐기되었다.
delay(duration, [ queueName ])
: 콜백과 애니메이션 사이이의 혼란을 방지하고 "setTimeout" 함수를 호출하지 않고도 지연시키고 싶은 만큼 애니메이션을 지연시킬수 있다.

jQuery('#foo')
    .slideDown() // Slide down
    .delay(200) // Do nothing for 200 ms
    .fadeIn(); // Fade in

//".delay()"의 첫 번째 인자로 밀리세컨즈 단위의 지연 시간값을 기입한다. 만약 다른 애니메이션
//대기열을 사용하려면 두번째 인자로 대기열 이름을 전달할 수 있다.(기본: "fx")


● Sliding
slideDown([speed], [callback]) : 비표시의 요소를, 그 요소의 높이가 될 때까지 서서히 표시해 간다.
// test_id 라는 id를 가진 요소를 클릭하면 a라는 id를 가진 요소가 0.5초간 슬라이딩(DOWN) 효과를 나타낸다.
$(function(){
    $("#test_id").click(function(){
        $("#a").slideDown(500);
    });
});

slideUp([speed], [callback]) : 각 요소를, 높이가 제로가 될 때까지 서서히 보이지 않게 한다.
// test_id 라는 id를 가진 요소를 클릭하면 a라는 id를 가진 요소가 0.5초간 슬라이딩(UP) 효과를 나타내며 사라진다.
$(function(){
    $("#test_id").click(function(){
        $("#a").slideUp(500);
    });
});

slideToggle([speed], [callback]) : 이 함수가 불릴 때마다 각 요소에 slideDown/slideUp(을)를 교대로 실행한다.
: Return jQuery Object - 대상 객체
// test_id 라는 id를 가진 요소를 클릭하면 a라는 id를 가진 요소의 style의 display 값이
//none일 경우 slideDown, 아닐 경우(block 또는 liline) slideUp 효과를 나타낸다.
$(function(){
    $("#test_id").click(function(){
        $("#a").slideToggle(500);
    });
});

● Fading
fadeIn([speed], [callback])
: 지정한 시간동안 투명도를 0에서 1로 증가시키고 style의 display를 none의 이전상태 (block 또는 liline)로 적용시킨다. 해당 요소가 서서히 나타나게 표현된다.
// a 라는 id를 가진 요소를 클릭하면 b라는 id를 가진 요소가 0.5초간 페이딩(In) 효과를 나타낸다.
$(function(){
      $("#a").click(function(){
        $("#b").fadeIn(500);
      });
});


fadeOut([speed], [callback])
: 지정한 시간동안 투명도를 1에서 0으로 감소시키고 style의 display:none 상태로 적용시킨다. 해당 요소가 서서히 사라지게 표현된다.
// a 라는 id를 가진 요소를 클릭하면 b라는 id를 가진 요소가 0.5초간 페이딩(Out) 효과를 나타내며 사라진다.
$(function(){
    $("#a").click(function(){
        $("#b").fadeOut(500);
      });
});


fadeTo(speed, opacity, [callback])
: 지정한 시간동안 투명도를 opacity만큼 증가 또는 감소시킨다.(opacity 만큼 fade 시킨다.)
// a 라는 id를 가진 요소를 클릭하면 b라는 id를 가진 요소가 0.5초간 투명도를 0.33으로 변경되면서 페이딩(To) 효과를 나타낸다.
$(function(){
    $("#a").click(function(){
        $("#b").fadeTo(500, 0.33);
    });
});


● Custom
animate(params, [duration], [easing], [callback]) : 독자적인 애니메이션을 작성, 실행한다.
animate(params, options) : 독자적인 애니메이션을 작성 실행한다.
$("#left").click(function(){
    $(".block").animate({"left": "-=50px"}, "slow");
});

// test_id1이라는 id를 가진 요소를 클릭하면 a라는 요소의 width값을 90%, height값을
// 270px로 0.5초동안 변화 후 fontSize를 10px로 변경한다.
// test_id2라는 id를 가진 요소를 클릭하면 a라는 요소의 width값을 50%, height값을
// 500px로 3초동안 변경 과 동시에 queue:false 설정으로 대기 없이 바로 fontSize 24px로 변경한다.
$(function(){
      $("#test_id1").click(function(){
        $("#a").animate({
            width : "90%", height : "270px"
        }, 500).animate({
            fontSize : "10px"
        });
      });
      $("#test_id2").click(function(){
          $("#a").animate({
              width: "50%", height : "500px"
          }, {
              queue : false, duration : 3000
          }).animate({
              fontSize : "24px"
          });
  });
});

stop() : 실행중의 효과를 정지한다.
// test_id라는 id를 가진 요소를 클릭하면 a라는 요소의 효과를 정지시킨다.
$(function(){
    $("#test_id").click(function(){
        $("#a").stop();
    });
});

queue() : 최초의 요소가 가지는 효과의 큐를 함수 배열로 돌려준다.
<html>
<head>
<script src="http://code.jquery.com/jquery.min.js" ></script>
<script>
    $(document).ready(function(){
        $("#show").click(function () {
            var n = $("div").queue("fx");
            $("span").text("Queue length is: " + n.length);
        });

        function runIt() {
            $("div").show("slow");
            $("div").animate({left:'+=200'},2000);
            $("div").slideToggle(1000);
            $("div").slideToggle("fast");
            $("div").animate({left:'-=200'},1500);
            $("div").hide("slow");
            $("div").show(1200);
            $("div").slideUp("normal", runIt);
        }
        runIt();
    });
</script>

<style>
div { margin:3px; width:40px; height:40px;
   position:absolute; left:0px; top:30px;
   background:green; display:none; }
div.newcolor { background:blue; }
span { color:red; }
</style>

</head>
<body>
<button id="show">Show Length of Queue</button>
<span></span>
<div></div>
</body>
</html>

queue(callback) : 각 요소가 가지는 큐의 마지막으로 실행되는 함수를 추가한다.
<html>
<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery.min.js" ></script>
  <script type="text/javascript">
  $(document).ready(function(){

   $(document.body).click(function () {
     $("div").show("slow");
     $("div").animate({left:'+=200'},2000);
     $("div").queue(function () {
       $(this).addClass("newcolor");
       $(this).dequeue();
     });
     $("div").animate({left:'-=200'},500);
     $("div").queue(function () {
       $(this).removeClass("newcolor");
       $(this).dequeue();
     });
     $("div").slideUp();
   });

  });
</script>
  <style>
  div { margin:3px; width:40px; height:40px;
       position:absolute; left:0px; top:30px;
       background:green; display:none; }
  div.newcolor { background:blue; }
</style>
</head>
<body>
  Click here...
  <div></div>
</body>
</html>

queue(queue) : 함수 배열을 건네주어 각 요소의 효과 큐를 옮겨놓는다.
<html>
<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery.min.js" ></script>
  <script type="text/javascript">
  $(document).ready(function(){

   $("#start").click(function () {
     $("div").show("slow");
     $("div").animate({left:'+=200'},5000);
     $("div").queue(function () {
       $(this).addClass("newcolor");
       $(this).dequeue();
     });
     $("div").animate({left:'-=200'},1500);
     $("div").queue(function () {
       $(this).removeClass("newcolor");
       $(this).dequeue();
     });
     $("div").slideUp();
   });
   $("#stop").click(function () {
     $("div").queue("fx", []);
     $("div").stop();
   });

  });
</script>
  <style>
  div { margin:3px; width:40px; height:40px;
       position:absolute; left:0px; top:30px;
       background:green; display:none; }
  div.newcolor { background:blue; }
</style>
</head>
<body>
  <button id="start">Start</button>
  <button id="stop">Stop</button>
  <div></div>
</body>
</html>

dequeue() : 기다리는 행렬의 선두로부터 처리를 꺼내 실행한다.
<html>
<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery.min.js" ></script>
  <script type="text/javascript">
  $(document).ready(function(){

   $("button").click(function () {
     $("div").animate({left:'+=200px'}, 2000);
     $("div").animate({top:'0px'}, 600);
     $("div").queue(function () {
       $(this).toggleClass("red");
       $(this).dequeue();
     });
     $("div").animate({left:'10px', top:'30px'}, 700);
   });

  });
</script>
  <style>
  div { margin:3px; width:50px; position:absolute;
       height:50px; left:10px; top:30px;
       background-color:yellow; }
  div.red { background-color:red; }
</style>
</head>
<body>
  <button>Start</button>
  <div></div>
</body>
</html>


● Settings
jQuery.fx.off : 효과를 켜거나 끈다.
// test_id라는 id를 가진 요소를 클릭 시 a가 0.5초동안 서서히 사라지지 않고 바로 사라져 버린다.
$(function(){
    jQuery.fx.off = false;
    $("#test_id").click(function(){
        $("#a").hide(500);
    });
});


Internals




● 데이터 캐쉬

jQuery.data(elem) : 요소를 식별할 수 있는 독특한ID(을)를 돌려준다.

jQuery.data(elem, name) : 요소에 관련지을 수 있었던 데이터를 돌려준다.

jQuery.data(elem, name, value) : 요소에 관련지을 수 있었던 데이터를 설정해, 설정치를 돌려준다.

jQuery.removeData(elem) : 어느 요소에 관련지을 수 있었던 데이터를 모두 삭제한다.

jQuery.removeData(elem, name) : 어느 요소에 관련지을 수 있던, 지정된 값을 삭제한다.




● Ajax

jQuery.param(obj) : form 요소나 오브젝트의 값을 시리얼라이즈 한다.


Utilities
각종 유틸리티

● 유저 에이전트
jQuery.support : 브라우저마다의 기능의 차이나 버그등의 정보를 구조체로 돌려준다.
jQuery.browser : jQuery 1.3에서는 jQuery.support를 사용
jQuery.browser.version : jQuery 1.3에서는 jQuery.support를 사용. 브라우저 렌더링 엔진의 버젼 번호.
jQuery.boxModel : jQuery 1.3에서는 jQuery.support(을)를 사용. W3C 표준 CSS Box Model(을)를 사용하고 있는지 여부

.browser와 .boxModel은 jQuery 1.3 부터, .support는 1.9부터 폐기되었다.
$(document).ready(function () {
    var result = "";
    //$.browser의 모든 속성 출력

    jQuery.each(jQuery.browser, function (i, val) {
        result += i + ";" + val + "\n";
    });

    alert(result);
});

● 문자열 조작
jQuery.trim(str) : 문자열을 트림

● 배열과 오브젝트 조작
jQuery.each(object, callback) : 범용적인 반복 함수. each() 문에서 return false;을 만나면 each문을 빠져 나감
<script>
$(document).ready(function () {
    //example 1
    //h3요소 모두 가져오기
    var headers = $('h3');
    // 반복문을 이용한 반복: for문 보다는 jQuery의 each문이 사용하기 편리
    for (var i = 0; i < headers.length; i++) {
        alert($(headers[i]).html());
    }

    $('h3').each(function (index) {
        alert($(this).html());
    });


    //example 2    
    $("div").each(function(i) {
        if (this.style.color != "blue") {
            this.style.color = "blue";
        } else {
            this.style.color = "";
        }
    });

    // example 3
    $("#button1").click(function(event) {  
        var data = [];                
        var form = $("form :input[type=text]");                
        $.each(form, function(e, textBox) {                    
            data.push($.trim(textBox.value));                
        });                
        $("#addressData").val(data.join(" "));  
        
        alert($("#addressData").val());  
    });
});

// example 4 폼 입력값 가져오기
function getAllValue() {
    var address = "";
    
    $("#address").find("input:text").each(function(i) {
        address += $(this).val();
    });
    
    alert(address);
}
</script>

<body style="font-size: 9pt;">
<form id="form1">
    <div id="address">
        우편번호 : <input type="text" /> - <input type="text" /> <br />
        주소 : <input type="text" /> <br />
        상세 주소 : <input type="text" /> <br />
        <input  type="button" value="모든 입력 내용값" on_click="getAllValue();" />
        <input id="button1" type="button" value="AllValueToHidden" />
        <input id="addressData" type="hidden" />
    
    </div>
</form>

jQuery.extend(target, object1, [objectN]) : 오브젝트를 확장
jQuery.grep(array, callback, [invert]) : 배열로부터, 함수를 이용해 특정의 값을 제거
jQuery.makeArray(obj) : 배열과 같이 이용하고 있는 오브젝트를, 실제로 배열로 변환
jQuery.map(array, callback) : 배열의 각 치를 함수로 처리하고, 새로운 배열을 작성
jQuery.inArray(value, array) : 지정한 값이 배열중에 있으면, 그 인덱스를 리턴
jQuery.unique(array) : 배열중으로부터 중복 하고 있는 값을 제거

● 검사
jQuery.isArray(obj) : (jQuery 1.3) 파라미터로 건네받은 값이 배열일지를 판별
jQuery.isFunction(obj) : 건네받은 값이 함수인지 어떤지를 판별

● 함수의 컨텍스트 조작하기
jQuery 1.4부터 새롭게 제공되는 "proxy" 함수는 jQuery의 네임스페이스를 관리할 수 있게한다. 이 함수는 "scope"와 메소드 이름을 받는 두개의 인자를 가지며 자바스크립트의 "this" 키워드를 통하여 다른 개체를 유지할 수 있게 한다.

예를 들어 "app" 는 "config" 와 "clickHandler" 메소드로 구성된 두개의 속성을 가지고 있다면,
var app = {
    config: {
       clickMessage: 'Hi!'
    },
    clickHandler: function() {
        alert(this.config.clickMessage);
    }
};

"clickHandler" 메소드를 실행하면 "this" 키워드를 통하여 "app" 개체에 접근하고 "config" 개체를 호출하여 값을 취득할 수 있음을 확인할 수 있다.
app.clickHandler(); // "Hi!" is alerted

이 메소드를 이벤트 핸들러로 바인딩하면,
jQuery('a').bind('click', app.clickHandler);

이렇게 바인딩된 메소드는 정상적으로 작동하지 않는다. 왜냐하면 jQuery(정확히 말하면 event model)에 의해서 "this"가 재정의 되어 버리기 때문이다. 이러한 문제들을 해결하기 위해서 제공하는 함수가 바로 "proxy"이다.
jQuery('a').bind('click',
    jQuery.proxy(app, 'clickHandler')
);

이제 앵커를 클릭하면 "Hi!"라는 문구가 나타난다.

"proxy" 함수가 리턴하는 것은 "wrapped"된 함수이다. 여기에는 이벤트가 되돌려준 개체와 "app"가 들고있는 두 속성을 "this"로 확장해서 돌려준 것이다. 이것은 이벤트를 바인딩 할 때 뿐만아니라 플러그인을 만들거나 콜백을 호출하는 데에도 유용하게 사용될 수 있다.

● jQuery.contains( container, contained )
jQuery 1.4에서는 jQuery 네임스페이스에 "contains" 함수를 제공한다. 이 함수는 낮은 수준의 함수로써 두개의 DOM 노드를 인자로 받아 수용여부를 구분한다. 첫 번째 요소가 두번째 요소를 포함하고 있는지에 대한 여부를 불린(boolean) 형식으로 반환한다.
jQuery.contains(document.documentElement, document.body);
// Returns true - <body> is within <html>
추천추천 : 549 추천 목록
번호 제목
3,020
 [HTML5] <video> - DOM으로 제어하기
3,019
 HTML5 video 태그에서 영상 좌우반전
3,018
 PHP - 특정 태그 및 문자열 추출, 제거
3,017
 [PHP] define과 defined의 차이
3,016
 우클릭 완벽차단 스크립트
3,015
 iframe 높이 100% 맞추기
3,014
 curl 함수를 이용한 HTTP REFERER 변경
3,013
 윈도우10 시스템 파일 및 Dism 검사
3,012
 텍스트 줄바꿈, 글자자르기 CSS
3,011
 jQuery Mobile에서 유용한 코드 10가지.
3,010
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,009
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,008
 [jQuery] jQuery Quick API
3,007
 [ transition ] 링크 hover 색상 변화 속도 조절
3,006
 PHP 5.3.0 에서 사라진 함수들 대체
3,005
 어떤 파일들이 include 나 require 되었는지 확인하는 함수(get_included_files)
3,004
 PHP 날짜 형식 및 계산하기(날짜 더하고 빼기)
3,003
 jQuery Mobile에서 유용한 코드 10가지.
3,002
 값이 배열 안에 존재하는지 확인하는 in_array함수
3,001
 사용자가 웹브라우저에서 뒤로가기를 했을때 감지하는 방법
3,000
 [jQuery]버튼 활성화, 비활성화
2,999
 jQuery show() / hide() / toggle() 사용법
2,998
 jquery 여러가지 이벤트
2,997
 border-radius 속성
2,996
 네이버 오픈API 음성합성 API 사용하는 PHP 샘플코드
2,995
 UTF8 한글 자르기..
2,994
 iconv 에러 발생시 계속 처리하기 옵션
2,993
 [PHP] 현재 페이지의 도메인 , URL 정보 알아내기.
2,992
 [PHP] 막강 기능 배열..
2,991
 [CSS] - Input clear `X ` 버튼 제거 ( IE, Chrome, Firefox )
2,990
 [Mobile] - 모바일웹 Href 태그속성들
2,989
 [JqueryMobile] - 현재화면의 가로세로 사이즈 구하기
2,988
 [JqueryMobile] - 화면의 가로, 세로 사이즈 구하는 방법
2,987
 jquery로 가로 넓이(width), 세로 높이(height) 자동 조절
2,986
 iframe 높이 jquery로 자동조절하기
목록
추억의가요방(가사포함)
인기절정뽕짝파티
인기트로트모음
지루박디스코메들리
밤무대애창곡
전자올겐경음악
세월따라노래따라
가슴시린트로트
트로트쌍쌍파티
7080추억속으로
종합성인가요방
못잊을옛날노래
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
POP TOP BEST

최신인기가요특집
추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
가요축제\트롯1번지
댄스\메들리\리믹스
카페\명상\경음악\기타
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.