목차
1.基础版jQuery插件
2.满足链式调用的jQuery插件
3.防止$符号污染的jQuery插件
4.可以接受参数的jQuery插件
1. 기본 jQuery 플러그인
2. 체인 호출을 만족하는 jQuery 플러그인
3. $ 기호 오염을 방지하는 jQuery 플러그인
4. 매개변수를 허용하는 jQuery 플러그인
总结
웹 프론트엔드 JS 튜토리얼 Jquery 플러그인을 이해하는 방법

Jquery 플러그인을 이해하는 방법

Sep 21, 2017 am 10:54 AM
jquery 플러그인 이해하다

실제 개발 작업을 하다 보면 스크롤, 페이징, 달력, 기타 디스플레이 효과 등 비즈니스 요구 사항이 항상 발생하게 됩니다. , 가장 먼저 떠오르는 것은 해당 디스플레이 요구 사항을 충족하는 기존 jQuery 플러그인을 찾는 것입니다. 현재 페이지에서 일반적으로 사용되는 일부 구성 요소에는 선택할 수 있는 다양한 jQuery 플러그인이 있습니다. 인터넷에는 특히 jQuery 플러그인을 수집하는 웹사이트도 많이 있습니다. jQuery 플러그인을 사용하면 실제로 개발 작업에 편리함을 가져다 줄 수 있지만, 단순하게만 사용하고 원리를 이해하지 못하면 사용 중에 문제가 발생하거나 플러그인을 맞춤 설정하는 경우가 발생합니다. 개발 과정에서 많은 의문점이 있을 것입니다. 이 글의 목적은 jQuery 플러그인의 개발 원리를 빠르게 이해하고 jQuery 개발의 기본 기술을 익히는 것입니다. jQuery以及熟悉jQuery使用的人来说,首先想到的肯定是寻找现有的jQuery插件来满足相应的展示需求。目前页面中常用的一些组件,都有多种jQuery插件可供选择,网络上也有很多专门收集jQuery插件的网站。利用jQuery插件确实可以给我们的开发工作带来便捷,但是如果只是会简单使用,而对其中的原理不甚了解,那么在使用过程中碰到问题或者对插件进行定制开发时就会有诸多疑惑。本文的目的就是可以快速了解jQuery插件的开发原理以及掌握jQuery开发的基本技能。


进行jQuery插件开发前,首先要知道两个问题:什么是jQuery插件?jQuery插件如何使用?
第一个问题,jQuery插件就是用来扩展jQuery原型对象的一个方法,简单来说就是jQuery插件是jQuery对象的一个方法。其实回答了第一个问题,也就知道第二个问题的答案了,jQuery插件的使用方式就是jQuery对象方法的调用。

我们先看个例子:$("a").css("color","red")。我们知道每个jQuery对象都会包含jQuery中定义的DOM操作方法,这里使用$方法来选择a元素,返回一个a元素的jQuery对象,这个对象就可以使用jQuery中定义的DOM操作方法。那么jQuery对象是如何获取这些方法的呢?其实jQuery内部定义了一个jQuery.fn对象,查看jQuery源码可以发现jQuery.fn=jQuery.prototype,也就是说jQuery.fn对象是jQuery的原型对象,jQueryDOM操作方法都在jQuery.fn对象上定义的,然后jQuery对象就可以通过原型继承这些方法。

1.基础版jQuery插件

知道了上面这些知识,我们就可以来写一个简单的jQuery插件。假如我现在需要一个jQuery插件用来改变标签内容颜色,就可以按下面的方式来实现这个插件:

$.fn.changeStyle = function(colorStr){
         this.css("color",colorStr);
}
로그인 후 복사

然后按下面的方式来使用插件:

$("p").changeStyle("red");
로그인 후 복사

插件调用的时候,插件内部的this就是当前调用插件的jQuery对象,这样的话每个使用$()方法选择的标签,在调用changeStyle()插件时都会使用css()方法重设color样式。

2.满足链式调用的jQuery插件

链式调用时jQuery的一大特色,一个通用的插件应该遵循jQuery风格,满足链式调用要求。实现链式调用的方式也很简单:

$.fn.changeStyle = function(colorStr){
         this.css("color",colorStr);         
         return this;
}
로그인 후 복사

然后使用的时候就可以链式调用其他方法了:

$("p").changeStyle("red").addClass("red-color");
로그인 후 복사

实现链式调用的关键点就一行代码return this,插件中加了这行代码,那么在插件执行完之后,就会把当前的jQuery对象返回,然后就可以在插件方法后面继续调用其它jQuery方法。

3.防止$符号污染的jQuery插件

有很多js库都会使用$符号,虽然jQuery可以使用jQuery.noConflict()方法交出$符号的使用权,但是如果定义插件的时候,使用$.fn对象来定义的,那么这些插件使用的时候就会受到其它使用$变量的js库的影响。对于这种情况,我们可以使用立即执行函数通过传参的方式封装插件。形式如下:

(function($){
     $.fn.changeStyle = function(colorStr){
         this.css("color",colorStr);        
         return this;
     }
}(jQuery));
로그인 후 복사

因为使用了立即执行函数,所以此时的$只属于这个立即执行函数的函数作用域,这样就可以避免$符号的污染。

4.可以接受参数的jQuery插件

继续上面的例子,假如我还想为这个插件添加一个设置标签元素内容文字大小的功能,那么我可以这么来实现:

(function($){
     $.fn.changeStyle = function(colorStr,fontSize){
         this.css("color",colorStr).css("fontSize",fontSize+"px");        
         return this;
     }
}(jQuery));
로그인 후 복사

上面这种插件传参方式适用于参数比较少的情况,如果需要传给插件内部的参数比较多,我们可以定义一个参数对象,然后把需要传给插件的参数放在参数对象中。插件定义时如下:

(function($){
     $.fn.changeStyle = function(option){
         this.css("color",option.colorStr).css("fontSize",option.fontSize+"px");        
         return this;
     }

}(jQuery));
로그인 후 복사

使用方式:
$("p").changeStyle({colorStr:"red",fontSize:14});



jQuery 플러그인을 개발하기 전에 먼저 두 가지 질문을 알아야 합니다. jQuery 플러그인이란 무엇입니까? jQuery 플러그인을 사용하는 방법은 무엇입니까?

첫 번째 질문인 jQuery 플러그인은 jQuery 프로토타입 객체를 확장하는 데 사용되는 메서드입니다. 간단히 말해서 jQuery<입니다. /code> 플러그인입니다. <code>jQuery 개체의 메서드입니다. 실제로 첫 번째 질문에 답한 후에는 두 번째 질문에 대한 답도 알 수 있습니다. jQuery 플러그인을 사용하는 방법은 jQuery 개체 메서드를 호출하는 것입니다. . 🎜🎜먼저 예시를 살펴보겠습니다: $("a").css("color","red"). 우리는 각 jQuery 개체가 jQuery에 정의된 DOM 작업 메서드를 포함한다는 것을 알고 있습니다. 여기서 $ 메서드는 요소를 선택하는 데 사용됩니다. jQuery 요소를 반환하면 이 개체는 jQuery에 정의된 DOM 작업 메서드를 사용할 수 있습니다. 그렇다면 jQuery 개체는 이러한 메서드를 어떻게 얻습니까? 실제로 jQueryjQuery.fn 개체를 내부적으로 정의합니다. jQuery 소스 코드를 보면 jQuery.fn=을 찾을 수 있습니다. jQuery.prototype, 즉 jQuery.fn 개체는 jQuery의 프로토타입 개체이고 DOM 작업 jQuery의 메서드는 모두 jQuery.fn 개체에 정의되어 있으며, jQuery 개체는 프로토타입을 통해 이러한 메서드를 상속할 수 있습니다. 🎜

1. 기본 jQuery 플러그인

🎜위의 지식을 바탕으로 간단한 jQuery 플러그인을 작성할 수 있습니다. 이제 레이블 내용의 색상을 변경하기 위해 jQuery 플러그인이 필요한 경우 다음과 같은 방법으로 플러그인을 구현할 수 있습니다. 🎜
(function($){
     $.fn.changeStyle = function(option){
          var defaultSetting = { colorStr:"green",fontSize:12};
          var setting = $.extend(defaultSetting,option);
          this.css("color",setting.colorStr).css("fontSize",setting.fontSize+"px");        
         return this;
     }
}(jQuery));
로그인 후 복사
로그인 후 복사
🎜 그런 다음 다음과 같은 방법으로 플러그인을 사용하세요. : 🎜
//注意为了更好的兼容性,开始前有个分号;(function($){
     $.fn.extend({         
         changeStyle:function(option){             
         var defaultSetting = { colorStr:"green",fontSize:12};         
         var setting = $.extend(defaultSetting,option);         
         this.css("color",setting.colorStr).css("fontSize",setting.fontSize+"px");        
         return this; 
          }
     });
}(jQuery));//这里将Jquery作为实参传递给匿名函数
로그인 후 복사
로그인 후 복사
🎜플러그인이 호출됩니다. 이때 플러그인 내부는 현재 플러그인을 호출하는 jQuery 객체입니다. 이 경우 를 사용하여 각 태그를 선택했습니다. $() 메서드는 changeStyle()< 시 호출됩니다. /code>가 플러그인되면 <code>css() 메서드가 색상</을 재설정하는 데 사용됩니다. 코드> 스타일. 🎜<h4 id="strong-체인-호출을-만족하는-jQuery-플러그인-strong"><strong>2. 체인 호출을 만족하는 jQuery 플러그인</strong></h4>🎜체인 호출은 <code>jQuery의 주요 기능입니다. 코드 >jQuery 스타일, 체인 호출 요구 사항을 충족합니다. 연쇄 호출을 구현하는 방법도 매우 간단합니다. 🎜rrreee🎜 그런 다음 사용할 때 다른 방법으로 연쇄 호출을 수행할 수 있습니다. 🎜rrreee🎜 연쇄 호출을 구현하는 핵심 포인트는 코드 한 줄 return this</code)입니다. >, 플러그인 이 코드 줄을 추가한 후 플러그인이 실행된 후 현재 <code>jQuery 개체가 반환되고 다른 jQuery</code를 계속 호출할 수 있습니다. > 플러그인 메소드 이후의 메소드. 🎜<h4 id="strong-기호-오염을-방지하는-jQuery-플러그인-strong"><strong>3. $ 기호 오염을 방지하는 jQuery 플러그인</strong></h4>🎜<code>$ 기호를 사용하는 js 라이브러리가 많이 있지만 jQuery는 jQuery.noConstrict() 메서드를 사용하면 $ 기호 사용 권한을 넘겨줄 수 있지만, 플러그인을 정의할 때는 < code>$.fn 개체를 정의한 후 사용하면 이러한 플러그인은 $ 변수를 사용하는 다른 js 라이브러리의 영향을 받습니다. 이 경우 즉시 실행 기능을 사용하여 매개변수를 전달하여 플러그인을 캡슐화할 수 있습니다. 형태는 다음과 같습니다. 🎜rrreee🎜즉시 실행 함수를 사용하기 때문에 현재 $는 이 즉시 실행 함수의 함수 범위에만 속하므로 $ 기호의 오염을 방지합니다. 🎜

4. 매개변수를 허용하는 jQuery 플러그인

🎜 위의 예를 계속해서 이 플러그인에 텍스트 크기를 설정하는 함수를 추가하려면 구현 방법은 다음과 같습니다. 🎜rrreee🎜위의 플러그인 매개변수 전달 방법은 전달해야 할 매개변수가 상대적으로 적은 상황에 적합합니다. 플러그인의 경우 매개변수 개체를 정의한 다음 플러그인에 전달해야 하는 매개변수를 매개변수 개체에 넣을 수 있습니다. 플러그인은 다음과 같이 정의됩니다: 🎜rrreee🎜Usage: 🎜$("p").changeStyle({colorStr:"red",fontSize:14}); 🎜매개변수를 플러그인의 또 다른 장점은 플러그인 내부의 일부 매개변수에 대해 기본값을 정의할 수 있다는 것입니다. 예를 들면 다음과 같습니다. 🎜
(function($){
     $.fn.changeStyle = function(option){
          var defaultSetting = { colorStr:"green",fontSize:12};
          var setting = $.extend(defaultSetting,option);
          this.css("color",setting.colorStr).css("fontSize",setting.fontSize+"px");        
         return this;
     }
}(jQuery));
로그인 후 복사
로그인 후 복사

上面的代码用到了$.extend方法,这个方法在这里的用法就是合并两个对象,即把后面一个对象的存在的属性值赋值给第一个对象,具体用法可以参考这里。$.extend方法还有一种作用是用来扩展jQuery对象本身。
这样定义的插件,我们在使用时如果不传fontSize,那么使用这个插件的jQuery对象标签的内容会被设置成默认的12px
使用方式:
$("p").changeStyle({colorStr:"red"});
注意:在为插件定义默认参数时,一定要把默认参数写在插件方法内部,这样默认参数的作用域就在插件内部。


总结

定义插件的方式除了上面说的用$.fn来定义,还有另外一种方式来定义插件,那就是使用$.fn.extend方法。类似下面的写法:

//注意为了更好的兼容性,开始前有个分号;(function($){
     $.fn.extend({         
         changeStyle:function(option){             
         var defaultSetting = { colorStr:"green",fontSize:12};         
         var setting = $.extend(defaultSetting,option);         
         this.css("color",setting.colorStr).css("fontSize",setting.fontSize+"px");        
         return this; 
          }
     });
}(jQuery));//这里将Jquery作为实参传递给匿名函数
로그인 후 복사
로그인 후 복사

PS: $.extend方法和$.fn.extend方法都可以用来扩展jQuery功能,通过阅读jQuery源码我们可以发现这两个方法的本质区别,那就是$.extend方法是在jQuery全局对象上扩展方法,$.fn.extend方法是在$选择符选择的jQuery对象上扩展方法。所以扩展jQuery的公共方法一般用$.extend方法,定义插件一般用$.fn.extend方法。

위 내용은 Jquery 플러그인을 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Chrome 플러그인 확장 프로그램 설치 디렉터리는 무엇인가요? Chrome 플러그인 확장 프로그램 설치 디렉터리는 무엇인가요? Mar 08, 2024 am 08:55 AM

Chrome 플러그인 확장 프로그램 설치 디렉터리는 무엇인가요? 일반적인 상황에서 Chrome 플러그인 확장의 기본 설치 디렉터리는 다음과 같습니다. 1. windowsxp에서 Chrome 플러그인의 기본 설치 디렉터리 위치: C:\DocumentsandSettings\username\LocalSettings\ApplicationData\Google\Chrome\UserData\ Windows7의 Default\Extensions2.chrome 플러그인의 기본 설치 디렉터리 위치: C:\Users\username\AppData\Local\Google\Chrome\User

Edge 브라우저가 이 플러그인을 지원하지 않는 이유에 대한 세 가지 해결 방법을 공유하세요. Edge 브라우저가 이 플러그인을 지원하지 않는 이유에 대한 세 가지 해결 방법을 공유하세요. Mar 13, 2024 pm 04:34 PM

사용자가 Edge 브라우저를 사용할 때 더 많은 요구 사항을 충족하기 위해 일부 플러그인을 추가할 수 있습니다. 그런데 플러그인을 추가하면 해당 플러그인이 지원되지 않는다고 표시됩니다. 이 문제를 해결하는 방법은 무엇입니까? 오늘은 에디터가 세 가지 해결 방법을 알려드리겠습니다. 방법 1: 다른 브라우저를 사용해 보세요. 방법 2: 브라우저의 Flash Player가 오래되었거나 누락되어 플러그인이 지원되지 않을 수 있습니다. 공식 웹사이트에서 최신 버전을 다운로드할 수 있습니다. 방법 3: "Ctrl+Shift+Delete" 키를 동시에 누르세요. "데이터 지우기"를 클릭하고 브라우저를 다시 엽니다.

jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까? jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까? Feb 28, 2024 pm 03:12 PM

jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까? jQuery에서 PUT 요청을 보내는 방법은 다른 유형의 요청을 보내는 것과 유사하지만 몇 가지 세부 사항과 매개 변수 설정에 주의해야 합니다. PUT 요청은 일반적으로 데이터베이스의 데이터 업데이트 또는 서버의 파일 업데이트와 같은 리소스를 업데이트하는 데 사용됩니다. 다음은 jQuery에서 PUT 요청 메소드를 사용하는 구체적인 코드 예제입니다. 먼저 jQuery 라이브러리 파일을 포함했는지 확인한 다음 $.ajax({u를 통해 PUT 요청을 보낼 수 있습니다.

jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요. jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요. Feb 28, 2024 pm 09:06 PM

제목: jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요. 웹 개발에서는 페이지의 요소를 수정하고 조작해야 하는 경우가 많습니다. jQuery를 사용할 때 페이지에 있는 모든 태그의 텍스트 내용을 한 번에 수정해야 하는 경우가 있는데, 이는 시간과 에너지를 절약할 수 있습니다. 다음은 jQuery를 사용하여 페이지의 모든 태그 텍스트를 빠르게 수정하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 jQuery 라이브러리 파일을 도입하고 다음 코드가 페이지에 도입되었는지 확인해야 합니다. &lt

jQuery를 사용하여 모든 태그의 텍스트 내용 수정 jQuery를 사용하여 모든 태그의 텍스트 내용 수정 Feb 28, 2024 pm 05:42 PM

제목: jQuery를 사용하여 모든 태그의 텍스트 내용을 수정합니다. jQuery는 DOM 작업을 처리하는 데 널리 사용되는 인기 있는 JavaScript 라이브러리입니다. 웹 개발을 하다 보면 페이지에 있는 링크 태그(태그)의 텍스트 내용을 수정해야 하는 경우가 종종 있습니다. 이 기사에서는 jQuery를 사용하여 이 목표를 달성하는 방법을 설명하고 구체적인 코드 예제를 제공합니다. 먼저 페이지에 jQuery 라이브러리를 도입해야 합니다. HTML 파일에 다음 코드를 추가합니다.

Google Chrome에서 애니메이션 플러그인 실행을 허용하는 방법 Google Chrome에서 애니메이션 플러그인 실행을 허용하는 방법 Mar 28, 2024 am 08:01 AM

Google 크롬에서는 애니메이션 플러그인 실행을 어떻게 허용하나요? Chrome은 매우 강력합니다. 많은 친구들이 동영상 애니메이션을 보기 위해 이 브라우저를 사용하고 싶어합니다. 그러나 다양한 애니메이션 동영상을 보려면 브라우저에 애니메이션 플러그인을 설치해야 합니다. 애니메이션 플러그인을 사용하는데도 여전히 비디오에 신경 쓸 수 없습니다. 이 문제를 어떻게 처리해야 합니까? 다음으로, 애니메이션 플러그인이 Google Chrome에서 실행되도록 허용하는 구체적인 단계를 편집자가 보여드리겠습니다. 관심 있는 친구가 와서 살펴볼 수 있습니다. 애니메이션 플러그인 실행을 허용하는 Google Chrome의 구체적인 단계: 1. 먼저 컴퓨터에서 Google Chrome을 실행하고 홈페이지 오른쪽 상단에 있는 기본 메뉴 버튼을 클릭합니다(그림 참조). 2. 메인 메뉴를 연 후 아래의 "설정" 옵션을 선택하세요(그림 참조). 3. 설정에서

Chrome 플러그인 차단을 해제하는 방법 Chrome 플러그인 차단을 해제하는 방법 Apr 01, 2024 pm 01:41 PM

Google 크롬 플러그인 차단을 해제하는 방법은 무엇입니까? 많은 사용자들은 Chrome을 사용할 때 다양한 유용한 플러그인을 설치하고 싶어합니다. 이러한 플러그인은 풍부한 기능과 서비스를 제공하고 업무 효율성을 향상시킬 수 있습니다. 그러나 일부 사용자는 Chrome에 플러그인을 설치한 후에는 플러그인이 작동하지 않는다고 말합니다. 항상 표시됩니다. 이 상황이 발생한 후 플러그인을 차단 해제하려면 어떻게 해야 합니까? 이제 편집자가 Google Chrome에서 플러그인 차단을 해제하는 단계를 보여드리겠습니다. 도움이 필요한 친구들이 와서 살펴보세요. Google Chrome에서 플러그인 차단을 해제하는 방법 1단계. 차단 메시지가 나타나면 "컨트롤 바"를 클릭하고 "ActiveX 컨트롤 설치"를 선택합니다. 2. 그런 다음 브라우저의 "도구" 메뉴를 열고 "인터넷 옵션"을 클릭합니다. 삼.

jQuery 요소에 특정 속성이 있는지 어떻게 알 수 있나요? jQuery 요소에 특정 속성이 있는지 어떻게 알 수 있나요? Feb 29, 2024 am 09:03 AM

jQuery 요소에 특정 속성이 있는지 어떻게 알 수 있나요? jQuery를 사용하여 DOM 요소를 조작할 때 요소에 특정 속성이 있는지 확인해야 하는 상황이 자주 발생합니다. 이 경우 jQuery에서 제공하는 메소드를 사용하여 이 기능을 쉽게 구현할 수 있습니다. 다음은 jQuery 요소에 특정 속성이 있는지 확인하기 위해 일반적으로 사용되는 두 가지 방법을 특정 코드 예제와 함께 소개합니다. 방법 1: attr() 메서드와 typeof 연산자를 // 사용하여 요소에 특정 속성이 있는지 확인

See all articles