如何创建一个接受jQuery UI对话框等选项和操作参数的jQuery插件

时间:2017-12-23 17:53:14

标签: javascript jquery

我正在尝试编写自己的对话框插件,并希望它能够反映jQuery UI对话框如何接受它的参数。

即。 jQuery UI对话框在其构造函数中获取选项,并且可以调用它以在之后打开对话框,而不保留对变量中对话框元素的引用。

我已经在GitHub上阅读了它的来源,但无法理解他们是如何完成它的。

jQuery方式

<a onclick="$('#dialog').dialog('open');">test</a>

$( function() {
    // No reference kept
    $('#dialog').dialog({left: 100, top: 10});
});

我的插件

(function ($) {

    $.fn.modal = function (options) {

        var defaults = { top: 100, overlay: 0.5, closeButton: '.closeDialog' };
        options = $.extend(defaults, options);

        if(options == "open"){
            // open
        }
        if(options == "close"){
            // close
        }
    };
}

1 个答案:

答案 0 :(得分:1)

动作和选项之间的区别非常简单。

动作是字符串:

$('#dialog').dialog('open');

虽然选项是对象的属性:

$('#dialog').dialog({left: 100, top: 10});

因此,简单检查所提供参数的类型就可以了。这就是jQuery的用法:

var isMethodCall = typeof options === "string";