开发拖放插件

时间:2011-12-29 03:23:35

标签: javascript jquery draggable defaults

我开始成为一个插件创建者,并没有完全掌握它。一个问题是我想在你有两个数字时做出默认值。我需要能够将它们应用到代码中。

我的意思是这样的:

var defaults = {
numbers: [1, 2]
}

我喜欢jquery团队用draggable做的事情:

$('#drag').draggable({
grid: [1, 100]
});

我想做的事情。任何想法如何?

2 个答案:

答案 0 :(得分:1)

一个很好的方法是使用$.extend,它将两个或多个对象的内容合并到第一个对象中:

(function($) {
    $.fn.foobar = function(options) {
        var settings = {
            numbers: [1, 2]
        };
        $.extend(settings, options);

        /* continue with plugin code. */           

        alert(settings.numbers[0] + " " + settings.numbers[1]);
    };
})(jQuery);

现在settings是用户指定选项和“默认”选项的组合。有关详细信息,请参阅插件创作教程的this section

示例: http://jsfiddle.net/2Djya/

P.S:确定插件如何工作的一个很好的资源是jQueryUI source本身。

答案 1 :(得分:0)

简化的插件代码:

$.fn.yourPlugin = function( conf ){
    var config = $.extend({
        someVar : 'default'
        ,   foo : 'anotherDefault'
    }, conf );

    return this.each( function(){
        // do stuff with $( this ) and config
    } );
};

$.extend将复制来自conf的任何参数传递给您创建的设置默认值的对象。