拖放插件的开发

发布于 2024-12-23 09:40:14 字数 280 浏览 1 评论 0原文

我开始成为一名插件创建者,但还没有完全掌握它的窍门。一个问题是我想在有两个数字的情况下进行默认设置。我需要能够将它们应用到代码中。

我的意思是这样的:

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

我喜欢 jquery 团队如何使用draggable:

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

这是我想做的事情。有什么想法吗?

I'm starting to become a plugin creator and don't fully have the hang of it. One problem is I would like to make an default where you have two numbers. And I need to be able to apply them to the code.

What I mean is like this:

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

I like how the jquery team did it with draggable:

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

Which is something I would like to do. Any Idea how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

长不大的小祸害 2024-12-30 09:40:14

一种很好的方法是使用 $.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 是用户指定的选项和“默认”选项的组合。有关详细信息,请参阅插件创作教程的本节

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

PS: 了解插件如何工作的一个很好的资源是 jQueryUI 源 本身。

One nice way to do this is to use $.extend, which merges the contents of two or more objects together into the first object:

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

Now settings is a combination of the user-specified options and the "default" options. See this section of the plugin authoring tutorial for more information.

Example: http://jsfiddle.net/2Djya/

P.S: A good resource for figuring out how plugins work is the jQueryUI source itself.

☆獨立☆ 2024-12-30 09:40:14

简化的插件代码:

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

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

$.extend 将从 conf 复制任何参数,并将其传递到您创建的设置默认值的对象上。

simplified plugin code:

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

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

the $.extend will copy any params from conf which is passed in onto the object you create that sets the defaults.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文