国产探花免费观看_亚洲丰满少妇自慰呻吟_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插件模板的吧,他實在是太靈活了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉溪市| 龙海市| 会泽县| 丰台区| 永嘉县| 尉犁县| 田林县| 鲁山县| 岑巩县| 安义县| 房产| 剑阁县| 牟定县| 宜黄县| 江城| 石棉县| 三都| 盐津县| 聊城市| 麻阳| 天全县| 崇明县| 柏乡县| 姜堰市| 龙陵县| 兰西县| 叶城县| 保定市| 乌兰浩特市| 陆河县| 古蔺县| 璧山县| 德兴市| 延川县| 红河县| 青海省| 库伦旗| 沛县| 隆化县| 丹阳市| 哈巴河县|