这是“覆盖”jQuery插件(提供默认设置)的正确方法吗?

时间:2014-04-12 15:55:30

标签: javascript jquery jquery-plugins ckeditor

我想覆盖(换行)$.fn.ckeditor函数,即CKEditor的jQuery适配器。我应该回报什么价值?这是正确的方法:

;(function ($) {
    var defaults = {}
        ckeditor = $.fn.ckeditor;

    $.fn.ckeditor = function (cb, options) {                   
        ckeditor.apply(this, [cb || $.noop, $.extend(defaults, options || {})]);
    };
}(jQuery));

为了覆盖插件?

1 个答案:

答案 0 :(得分:0)

注意未尝试ckeditorplugin)。

如果准确解释帖子,

试试这个(模式)

HTML

<article>123</article>
<div>123</div>
<span>123</span>

JS

$(function () {;
    (function ($) {
        $.fn.ckeditor = function (options) {
                    var defaults = {
            "n": 2
        };
            var options = $.extend({}, defaults, options);
            return $(this).html(function (index, o) {
                return String(Number(o) * options.n)
            })
        };
    }(jQuery));

    $("article").ckeditor();

    $("div").ckeditor({
        "n": 4
    });

    $("span").ckeditor({
        "n": (function () {
            return Number($("article").html())
        })()
    });
})

jsfiddle http://jsfiddle.net/guest271314/2qrq3/

请参阅jQuery fn.extend ({bla: function(){}} vs. jQuery.fn.bla