jquery 플러그 인 제작 튜 토리 얼 txtHover
4499 단어 jquery 플러그 인
이 시 리 즈 는 제 가 < jQuery Plugin Development Beginner 's Guide > 를 읽 고 정리 한 것 입 니 다. 관심 있 는 분 들 은 원판 책 을 읽 으 셔 도 됩 니 다.
플러그 인의 구조 골격 정의:
책 에서 가장 먼저 사용 한 구조 구 조 는 다음 과 같다.
jQuery.fn.fluginmane=function(){
return this.each(function(){
//code...
})
}
이러한 구 조 는 그다지 이상 적 이지 않다. 특히 책 에 서 는 충돌 예 를 방지 하기 위해 $를 사용 하지 않 고 jQuery 를 사용한다 고 언급 했다.여기 서 우 리 는 익명 함수 의 방식 으로 플러그 인의 구조 구 조 를 실현 하면 가능 한 충돌 을 방지 할 수 있다.익명 함수 에 대한 지식 도 잘 알 아 보 셨 으 면 좋 겠 습 니 다.
(function($){
$.fn.fluginname=function(){
return this.each(function(){
//code...
});
}
})(jQuery);
주의 점:
1. 통일 과 규범 을 위해 서 우리 의 플러그 인 파일 은 jquery. fluginname. js 형식 으로 이름 을 지 을 것 입 니 다 (fluginname 은 플러그 인의 이름 을 대표 합 니 다).
2. 우리 가 사용 하 는 함 수 는 모두 개인 적 인 것 이 어야 합 니 다. 외부 에 접근 할 수 없습니다. 그러면 플러그 인 이 외부의 영향 과 방 해 를 받 지 않도록 보장 할 수 있 습 니 다 (익명 함 수 는 이미 이 점 을 보장 합 니 다).
3. options 를 사용 하여 플러그 인의 행동 을 제어 할 수 있 도록 합 니 다.
4. 기본 options 는 외부 접근 을 허용 합 니 다. 사용자 가 최소한 의 코드 로 사용자 정의 할 수 있 습 니 다.
5. this. each () 는 요구 에 부 합 된 모든 대상 을 옮 겨 다 닙 니 다. 그 자 체 는 jquery 대상 이 고 플러그 인 은 마지막 으로 이 대상 을 되 돌려 줍 니 다.사실 이런 방식 을 통 해 자 바스 크 립 트 의 체인 모드 를 실현 했다.
우리 의 첫 번 째 플러그 인: txt Hover
1. 코드 구현:
(function($){
$.fn.txtHover=function(){
return this.each(function(){
$(this).text('text changed!');
});
}
})(jQuery);
2. 어떻게 사용:
html 파일 을 만 들 고 jquery 와 플러그 인의 인용 을 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="Scripts/jquery.txtHover.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#test').txtHover();
});
</script>
</head>
<body>
<div id="test">
this is test.</div>
</body>
</html>
hover 이벤트 추가:
(function ($) {
$.fn.txtHover = function () {
return this.each(function () {
var temp = $(this).text();
$(this).hover(function () {
$(this).text('text changed!');
}, function () {
$(this).text(temp);
});
});
}
})(jQuery);
첫 번 째 버 전 은 페이지 로 딩 이 끝 난 후에 div 의 내용 이 수정 되 었 습 니 다. 이런 디자인 은 별로 쓸모 가 없습니다.우리 가 가장 자주 사용 하 는 것 은 마우스 가 문자 위로 옮 겨 질 때 약간의 변화 가 생 긴 다 는 것 이다.개 선 된 플러그 인 에 hover 이벤트 가 추가 되 었 습 니 다.우선, div 의 원본 값 을 변수 temp 에 저장 합 니 다. 마우스 가 div 위로 이동 할 때 텍스트 가 바 뀌 고 마우스 가 이동 할 때 텍스트 를 바 꿉 니 다.
사용자 정의 옵션 추가
사용자 가 더욱 유연 하 게 사용 할 수 있 도록 사용자 정의 기능 을 추가 해 야 합 니 다. 플러그 인 코드 수정:
(function ($) {
$.fn.txtHover = function (options) {
var defaults = { txt: 'text changed!' };
var opt = $.extend(defaults, options);
return this.each(function () {
var self = $(this);
var temp = self.text();
self.hover(function () {
self.text(opt.txt);
}, function () {
self.text(temp);
});
});
}
})(jQuery);
플러그 인 은 기본 텍스트 정 보 를 설정 하 는 변수 defaults 를 정의 합 니 다.저 희 는 $extend () (이 함 수 를 모 르 는 친 구 는 자 료 를 찾 아 볼 수 있 습 니 다) 방법 으로 새로운 변 수 를 확장 하 였 습 니 다. 만약 에 사용자 가 들 어 오 는 options 변수 가 txt 를 포함 하면 opt 는 사용자 가 들 어 오 는 것 을 사용 합 니 다. 그렇지 않 으 면 시스템 기본 값 을 사용 합 니 다.우 리 는 시스템 에서 var self = $(this) 를 정의 하여 this 대상 을 대체 합 니 다.this 는 javascript 에서 매우 짜증 나 는 대상 입 니 다. 서로 다른 함수 컨 텍스트 에서 대표 하 는 대상 이 다 를 수 있 습 니 다. this 를 다른 변수 에 전달 하면 프로그램 에 오류 가 발생 하지 않도록 할 수 있 습 니 다.익숙 하지 않 은 친 구 는 이 지식 을 잘 파악 할 필요 가 있다.
사용자 가 html 페이지 에서 플러그 인 을 호출 할 때 div 위로 마 우 스 를 옮 길 때의 텍스트 내용 을 사용자 정의 할 수 있 습 니 다.
$(document).ready(function () {
$('#test').txtHover({ txt: 'test' });
});자, 오늘 의 예 는 여기까지 입 니 다.