一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 一看就會的jQuery插件實現(xiàn)方法

一看就會的jQuery插件實現(xiàn)方法

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-06-06 13:55:00 1654494900

插件是對具體業(yè)務邏輯的一個針對性封裝,在代碼層面,就是一個函數(shù)或者方法,按需調用。jQuery里提供了兩種兩種類型的插件實現(xiàn)方法。一個是擴展jQuery類方法,一個是擴展jQuery實例方法。

一看就會的jQuery插件實現(xiàn)方法

## jQuery類方法的擴展(jQuery.extend())

類方法是就jQuery自身的方法,如果foo是jQuery自身方法,就可以這樣調用$.foo();實現(xiàn)起來也超級簡單的,就跟平常給一個對象添加方法一樣:

```js
jQuery.foo = function(){
    console.log("我是jQuery類方法foo");
}
jQuery.foo();
```

在jQuery里,專門提供了用于擴展類方法的寫法jQuery.extend(),可以一次擴展多個方法,用法如下:

```js
$.extend({
   fn1: function () {},
   fn2: function () {},
  });
 $.fn1();
 $.fn2();
 $.fn3(); //報錯
```

## jQuery實例方法的擴展(jQuery.fn.extend())

實例方法就是jQuery實例對象訪問的方法,我們知道,按照面向對象對象設計思想,實例訪問的方法通常是放到原型對象prototype上的。jQuery提供的用于擴展實例方法的寫法是$.fn.extend(),這就意味著有這樣一個等式關系成立:

```js
jQuery.prototype === $.fn //true
```

所以我們只需把擴展的方法寫到$.fn.extend()的小括號里即可:

```js
$.fn.extend({
    fn1:function(){},
    fn2:function(){}
})
//jquery實例對象$("div")訪問情況
$("div").fn1();
$("div").fn2();
$("div").fn3(); //報錯
```

對jQuery實例方法的擴展,有一個需要我們注意的地方,就是參數(shù)。大家知道,參數(shù)的設計分為三種情況,那就是不帶參數(shù),必傳參數(shù),可選參數(shù)。接下來我們以一個高亮顯示的例子給大家演示下。

```text
<!-- html結構 -->
<div>高亮顯示</div>
```

不帶參數(shù)

```js
$.fn.extend({
    highLight() {
        //讓實例對象的背景顏色和文字顏色發(fā)生改變
        //highLight是一個原型方法,this表示的是實例
        this.css({ "background-color": "yellow", color: "red" });
        return this;//形成鏈式調用
    },
});
$("div").highLight().width("500px");//黃底紅字寬500
```

必傳參數(shù)

```js
$.fn.extend({
    highLight(bgColor, color) {
        this.css({ "background-color": bgColor, color });
        return this;
    },
});
$("div").highLight("blue", "white").width("500px");//藍底白字寬500
```

可選參數(shù),意思就是不傳就用默認的,傳參就用自定義的,

```js
//多個參數(shù)逐一列出
$.fn.extend({
    highLight(bgColor = "yellow", color = "red") {
        this.css({ "background-color": bgColor, color });
        return this;
    },
});
$("div").highLight(); //黃底紅字
$("div").highLight("blue"); //藍底紅字
$("div").highLight("blue", "white"); //藍底白字
//一個參數(shù)對象
$.fn.extend({
    highLight(opts) {
        let defaults = { bgColor: "yellow", color: "red" }; //默認值
        //取到實際的值 options
        let options = $.extend({}, defaults, opts);//將一個或多個源對象復制給目標對象
        this.css({
            "background-color": options.bgColor,
            color: options.color,
        });
        return this;
    },
});
$("div").highLight();//黃底紅字
$("div").highLight({ bgColor: "blue"});//藍底紅字
$("div").highLight({ bgColor: "blue", color: "white" });//藍底白字
```

怎么樣,是不是炒雞簡單~~~

更多關于web培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養(yǎng)模式,擁有國內一體化教學管理及學員服務,助力更多學員實現(xiàn)高薪夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT