별의 공부 블로그 🧑🏻‍💻
728x90
728x170

(1) change() 이벤트 메서드

- 선택한 입력 요소의 값(value)이 새 값으로 바뀌고 포커스가 다른 요소로 이동되었을 때 발생함.

- 주로 폼 요소에 입력된 새 값을 스크립트에 이용할 때 사용됨.

- 또는 change 이벤트를 강제로 발생시킬 수 있음.

- 기본형

 1. $(요소 선택).change(function() {...});   

 // 선택한 입력 요소의 값(value)이 새 값으로 바뀌고 포커스가 다른 요소로 이동되었을 때 이벤트 핸들러에 있는 실행문을 실행함.

 2. $(요소 선택).change();  // 선택한 요소에 강제로 change 이벤트 메서드를 발생시킴.

 

- 예)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!-- 문단 태그 영역 -->
 
<body>
    <select id="rel_site">
        <option value="">사이트 선택</option>
        <option value="www.naver.com">네이버</option>
        <option value="www.nate.com">네이트</option>
        <option value="www.daum.net">다음</option>
    </select>
    <p id="txt"></p>
</body>
 
<!-- 메서드 적용 -->
<script type="text/javascript">
    $(function() {  
        $("#rel_site").change(function(){ // id="rel_site"인 요소의 value 속성값이 바뀌었을 때 function(){...}에 실행문을 실행함.
            $("#txt").text($(this).val()); // id="rel_site"인 요소의 value 속성값을 가져와 id="txt"인 요소에 텍스트로 출력
        });
    });
</script>
cs

 

 

(2) scroll() 이벤트 메서드

- 브라우저에 스크롤바가 이동할 때마다 이벤트를 발생시킴.

- 또는 scroll 이벤트를 강제로 발생시킴.

- 주로 퀵 메뉴를 만들 때 사용함.

- 기본형

 1. $(요소 선택).scroll(function(){...});  // 브라우저에 스크롤바가 이동될 때마다 이벤트 핸들러에 있는 실행문이 실행됨.

 2. $(요소 선택).scroll();    // 선택 요소에 강제로 scroll 이벤트를 발생시킴.

 

- 예)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- 문단 태그 영역 -->
<style type="text/css">
    body{height:3000px;}
    #txt{position:fixed;top:10px;left:10px;}
</style>
<body>
    <p id="txt"></p>
</body>
 
<!-- 메서드 적용 -->
<script type="text/javascript">
    $(window).scroll(function(){        // 스크롤바가 이동할 때마다
        $("#txt").text($(this).scrollTop()); // 브라우저에 스크롤바가 이동된 높잇값을 id="txt"인 요소에 텍스트로 출력
    });
</script>
cs

 

 

* 이벤트가 발생한 요소 추적하기

 

(1) $(this) 선택자

- 이벤트 핸들러에 $(this)를 사용했다면, 여기서 $(this)가 가리키는 것은 이벤트가 등록된 요소를 가리킴.

- $(this) 선택자는 이벤트가 발생한 요소를 선택해 옴.

- $(this) 선택자를 이벤트 핸들러에 사용한 기본형

 $(요소 선택).이벤트(function(){

    $(this)

 }); 

 

- 예1)

 <p><a href="#" id="btn">버튼</a></p>

 

 $("#btn").click(function(){

    $(this).css("color", "red");   // <a id="btn">을 클릭할 때마다 $(this)는 클릭 이벤트가 발생된 <a id="btn"> 태그를 가리킴

 }); 

 

- 예2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- 문단 태그 영역 -->
<body>
    <button id="btn">마우스 오버</button>
</body>
 
<!-- $(this) 적용 -->
<script type="text/javascript">
    $(function(){
        $("#btn").mouseover(function(){     // 버튼에 마우스를 올릴 때마다
            $(this).css("border""2px solid red"); // 버튼에 선을 생성함.
            $(this).text("MouseOver");      // 버튼의 텍스트를 "MouseOver"로 바꿈;
        });
    });
</script>
cs

 

 

(2) index() 인덱스 반환 메서드

- 이벤트를 등록한 요소 중 이벤트가 발생한 요소의 인덱스 값을 반환함.

- 기본형

 $(요소 선택).이벤트(function(){

    $(요소 선택).index(this);    // 이벤트를 등록한 요소 중에 이벤트가 발생한 요소의 인덱스 값을 반환함.

 }); 

 

- 예)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!-- 문단 태그 영역 -->
<body>
    <ul id="menu">
        <li><a href="#">내용1</a></li>
        <li><a href="#">내용2</a></li>
        <li><a href="#">내용3</a></li>
        <li><a href="#">내용4</a></li>
    </ul>
    <p class="txt"></p>
</body>
 
<!-- $(this) 적용 -->
<script type="text/javascript">
    $(function(){
        $("#menu a").mouseover(function(){     // <a>에 마우스를 올렸을 때
            $("#menu a").css("background""none");  // <a>의 배경 속성을 지움
            // 이벤트가 발생한 <a> 태그만 배경이 노란색으로 바뀜.
            $(this).css("background""yellow");
 
            var num=$("#menu a").index(this);     
            // mouseover 이벤트를 등록한 4개의 <a> 태그 중 이벤트가 발생한 <a>의 인덱스 값을 변수 num에 할당함.
            $(".txt").text(num);    // num에 할당된 값을 class="txt"인 요소에 텍스트로 출력
        });
    });
</script>
cs

 

내용 출처 : Do It! 자바스크립트+제이쿼리 입문 (정인용 지음, 이지스퍼블리싱)

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖