国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

推薦一款jQuery插件模板

2019-11-20 13:27:27
字體:
來源:轉載
供稿:網友

我使用jQuery已經有相當長的時間了,并且我會常常為它寫一些插件(plugin)。我嘗試過用不同的方式去寫,現在這個模板是我最喜歡的:

復制代碼 代碼如下:

;(function($) {
  // multiple plugins can go here
  (function(pluginName) {
    var defaults = {
      color: 'black',
      testFor: function(div) {
        return true;
      }
    };
    $.fn[pluginName] = function(options) {
      options = $.extend(true, {}, defaults, options);
            
      return this.each(function() {
        var elem = this,
          $elem = $(elem);
 
        // heres the guts of the plugin
          if (options.testFor(elem)) {
            $elem.css({
              borderWidth: 1,
              borderStyle: 'solid',
              borderColor: options.color
            });
          }
      });
    };
    $.fn[pluginName].defaults = defaults; 
  })('borderize');
})(jQuery);
 
//下面是用法
$('div').borderize();
$('div').borderize({color: 'red'});

  以下是我喜歡這種模板的原因

  1. 你仍然可以訪問里面的默認選項,即便它被重寫了(簡單地通過父屬性的訪問)

  2. 通過修改pluginName即可更改插件的名字。(這種方式對代碼壓縮也非常有利)

  第#1點非常強大,比如說我們希望復寫這個方法,但是仍然希望保留原來的方法,我們可以看下面的例子:

復制代碼 代碼如下:

$('.borderize').borderize({
    testFor: function(elem) {
        var $elem = $(elem);
        if (elem.is('.inactive')) {
            return false;
        } else {
            // calling "parent" function
            return $.fn.borderize.defaults.testFor.apply(this, arguments);
        }
    }
});
We can even do this with regular properties like this
 
var someVarThatMayBeSet = false;
/* code ... */
 
$('.borderize').borderize({
    color: someVarThatMayBeSet ? 'red' : $.fn.borderize.defaults.color
});

小伙伴們,你們也會喜歡上這款jQuery插件模板的吧,他實在是太靈活了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝昌县| 罗江县| 永仁县| 赤水市| 女性| 文山县| 扶风县| 长白| 开封市| 柳江县| 安康市| 古交市| 博兴县| 新津县| 镇巴县| 东明县| 海林市| 忻州市| 兴安盟| 辽源市| 曲阳县| 玉门市| 崇明县| 读书| 五家渠市| 卫辉市| 镇安县| 澳门| 高邮市| 黑水县| 民丰县| 阳泉市| 武乡县| 定结县| 望谟县| 新野县| 高青县| 铜川市| 陇西县| 平塘县| 筠连县|