如何在jQuery插件中启用全局设置更改

时间:2011-02-04 17:53:20

标签: javascript jquery jquery-plugins keyboard-shortcuts jkey

我有一个jQuery插件(https://github.com/OscarGodson/jKey),有些用户需要本地化支持。我本能的想法是在插件中有另一个参数,以允许本地化,如:

$(window).jkey('?',callback,{'?':223})

或者将其保存为var

var localization = {'?':223,'a':224,'b':225,'c':226}
$(window).jkey('?',callback,localization)

但这对于屁股来说是一种痛苦,因为大多数用户希望将所有代码本地化,而不仅仅是一个代码片段。那么,有没有办法设置全局jQuery设置?例如,能够像

一样
$.jkey({localization:{'?':223}})

然后我们对$().jkey()的所有电话都会使用它?

1 个答案:

答案 0 :(得分:1)

您可以用这种方式实现您描述的内容:

(function ($) {

    var defaults = {
        localization: {}
    };


    $.fn.jkey = function (args) {
        var l18n = defaults.localization;
        // your existing plugin code can use the
        // 'global' localization settings
        console.log(l18n['?']);
        // rest of the plugin...

    };

    $.jkey = function (options) {
         // override the defaults for all plugin calls.
         $.extend(defaults, options)
    }

}(jQuery));