如何命名不属于实际插件的方法?

时间:2012-01-20 13:13:13

标签: jquery jquery-plugins

我的插件中有一些扩展点,我提供了一些默认实现。这些对象不属于我的方法对象,但仍应正确命名。

如何命名这些扩展名?

我试着这样做:

(function ($) {
    var pageManagers = {};
    var themeManagers = { };

    themeManagers.noTheme = {
        some: function() {
        }
        // and more.
    }

   var methods = {
      // all of my methods
   }


    $.fn.griffinTable = function (method) {
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' + method + ' does not exist on jQuery.griffinTable');
        }

        return this;
    };
})(jQuery);

但我无法弄清楚如何从外部访问pageManagersthemeManagers,如:

<script type="text/javascript">
    $(function () {
        $('#mytable').griffinTable({ fetchAtStart: true, themeManager: themeManagers.noTheme });
    });
</script>

如何命名和使用它们?

1 个答案:

答案 0 :(得分:0)

我在jQuery范围之外使用它:

$.griffinTableExtensions = {
    pageManagers: {},
    themeManagers: {}
};

允许我使用:

<script type="text/javascript">
    $(function () {
        $('#mytable').griffinTable({ fetchAtStart: true, themeManager: $.griffinTableExtensions.themeManagers.noTheme });
    });
</script>

我刚刚提交了表插件:https://github.com/jgauffin/Griffin.Table