久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

我最喜歡的jQuery插件模板

 ThinkTank_引擎 2016-01-07

作者 Moshe Kolodny,  12月27日,,2013

jquery plugin

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

;(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
});



你有更好的模板嗎?歡迎回復,。

原文地址: kolodny.

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多