我正在尝试编写自己的对话框插件,并希望它能够反映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
}
};
}
答案 0 :(得分:1)
动作和选项之间的区别非常简单。
动作是字符串:
$('#dialog').dialog('open');
虽然选项是对象的属性:
$('#dialog').dialog({left: 100, top: 10});
因此,简单检查所提供参数的类型就可以了。这就是jQuery的用法:
var isMethodCall = typeof options === "string";