의 jQuery UI 예 - 파트 갤러리 (위젯 공장)
상태 jQuery 플러그인을 만들 모두 같은 추상화와 jQuery를 UI 위젯을 사용합니다.
위젯 라이브러리 (위젯 공장)에 대한 자세한 내용은 API 문서 확인 구성 요소 라이브러리 (위젯 공장) .
기본 기능
데모는 사용자 정의 위젯을 만들 구성 요소 라이브러리 (jquery.ui.widget.js)를 사용하는 간단한을 보여줍니다.
다른 방법으로 세 블록을 초기화합니다. 자신의 배경색을 변경하려면 클릭합니다. 보기 소스 코드와 의견이 어떻게 작동하는지 이해합니다.
<! DOCTYPE html로> <HTML LANG = "EN"> <헤드> <메타 문자 집합 = "UTF-8"> <제목> jQuery를 UI 위젯 라이브러리 (위젯 공장) - 기본 기능 </ 제목> <링크 REL = "스타일 시트"HREF = "// code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <스크립트 SRC = "// code.jquery.com/jquery-1.9.1.js"> </ script> <스크립트 SRC = "// code.jquery.com/ui/1.10.4/jquery-ui.js"> </ script> <링크 REL = "스타일 시트"HREF = "http://jqueryui.com/resources/demos/style.css"> <스타일> .custom-색상 화 { 글꼴 크기 : 20 픽셀; 위치 : 상대; 폭 : 75px; 높이 : 75px; } .custom-색상 화 체인저 { 글꼴 크기 : 10px; 위치 : 절대; 오른쪽 : 0; 바닥 : 0; } </ 스타일> <스크립트> $ (함수 () { // 회원의 정의에있어서, "사용자 정의"네임 스페이스 "색상 화"멤버 $의 된 .widget ( "custom.colorize"의 이름입니다 { // 기본 옵션 : { 빨간색 : 255, 녹색 : 0, 블루 : 0, // 콜백 변화 : 널 (null), 랜덤 : 널 (null) }, // 생성자 _create : 함수 () { this.element // 클래스의 항목을 추가 .addClass ( "사용자 정의 색상 화") // 방지) (텍스트 .disableSelection을 선택 더블 클릭; this.changer = $ ( "<버튼>", { 텍스트 : "변화" "클래스": "사용자 정의 색상 화 체인저" }) .appendTo (this.element) .button (); 임의의 방법 this._on (this.changer, {에 클릭 이벤트 체인저 버튼 바인딩 // 위젯을 사용하지 // 경우, _on 무작위로 호출되지 클릭 : "랜덤" }); this._refresh (); }, () 함수 {// 변경 한 다음 만들 때 _refresh 전화 옵션을 this.element.css ( "배경 색", "RGB ("+ this.options.red + ","+ this.options.green + ","+ this.options.blue + ")" ); 콜백 / 이벤트 this._trigger ( "변경")을 트리거 //; }, 임의의 값으로 색상을 변경 // // 공개 방법 ( "임의의") 임의 .colorize를 통해 직접 호출 할 수 있습니다 : 함수 (이벤트) { var에 색상 = { 빨간색 : Math.floor (인 Math.random () * 256), 녹색 : Math.floor (인 Math.random () * 256), 블루 : Math.floor (인 Math.random () * 256) }; 이벤트를 트리거 // 취소 여부를 확인하는 경우 (this._trigger ( "임의의"이벤트, 색상)! == 거짓) { this.option (색); } }, // 여기에 _on에 구속 자동 제거 이벤트는 다른 수정의 _destroy를 재설정 // : 함수 () { //) (this.changer.remove 생성 요소를 제거; this.element .removeClass ( "사용자 정의 색상 화") .enableSelection () .CSS ( "배경 색", "투명"); }, 함수 () {: 해시에 의해 // _setOptions 모든 변경 옵션은 항상 _setOptions를 새로 고칠 때 // 호출 옵션 변경 // _super 그리고 _superApply this._superApply (인수); this._refresh (); }, // _setOption _setOption 옵션 전화를 변경하려면 각 개인의 경우 : 기능 (키, 값) { // 색상 값이 유효하지 않도록 경우 (/red|green|blue/.test(key) && (값 <0 || 값> 255)) { 반환; } this._super (키, 값); } }); // 기본 옵션 $를 초기화 ( "# 내-WIDGET1") .colorize (); // 두 개의 사용자 정의 옵션으로는 $ ( "# 내-WIDGET2") .colorize을 ({초기화 빨간색 : 60, 블루 : 60 }); // 자기 정의 된 값으로 그린 만 충분한 녹색 색상 임의 콜백 $ ( "# 내-WIDGET3") .colorize을 ({초기화 할 수 있습니다 녹색 : 128, 랜덤 : 함수 (이벤트, UI) { ui.green> (128)를 반환; } }); // 클릭 스위치 활성화 / 비활성화 () {$ ( "#disable") .click (기능 "사용자 정의 색상 화") .colorize (있는 경우 ($ (각 위젯 // 사용자 정의 선택기는 모든 인스턴스 // 함께 전환의 모든 인스턴스를 찾을 수 있습니다, 그래서 우리는 확인하기 위해 제 1 상태에서 시작할 수 있습니다 "옵션", "장애인")) { $ ( ": 맞춤 색상 화") .colorize ( "활성화"); } 그밖에 { $ ( ": 맞춤 색상 화") .colorize ( "사용 안 함"); } }); // 초기화 한 후, {) .click (기능 (설정 옵션 $ ( "#black")을 클릭 $ ( ": 맞춤 색상 화") .colorize ( "옵션", { 빨간색 : 0, 녹색 : 0, 블루 : 0 }); }); }); </ 스크립트> </ 헤드> <바디> <DIV> <사업부 아이디 = "내-WIDGET1"> 색상 변경 </ DIV> <사업부 아이디 = "내-WIDGET2"> 색상 변경 </ DIV> <사업부 아이디 = "내-WIDGET3"> 색상 변경 </ DIV> <버튼 ID = "비활성화"> 전환 비활성화 옵션 </ 버튼> 블랙에 <버튼 ID = "블랙"> </ 버튼> </ DIV> </ BODY> </ HTML>