我正在开发一个jquery画廊,我想参数化荧光笔功能以支持任何类型的灯箱(例如fancybox)。 在我的默认设置中,我做了类似的事情:
$.fn.mygallery.defaults = {
functionHighlighter: null
}
所以在代码中,创建项目,我会检查这个属性,如果它被设置为一个函数,我想在元素上调用它:
if ((typeof opt.functionHighlighter) === "function") {
opt.functionHighlighter.call(link);
}
其中link是包含微缩图像的锚元素,其中href设置为原始图像。在我的想法中,当调用插件时,我将函数设置为:
$("#gallery").mygallery({ functionHighlighter: $.fancybox });
但是functionHighlighter上的“call”直接执行fancybox,返回一个空白区域。 我想模仿的是执行
link.fancybox();
在链接上正确构建插件。 有什么想法吗?
答案 0 :(得分:0)
您需要将这些设置为选项:
jQuery.fn.pluginName = function (options) {
var defaults = {
fancyObject: '',
fancyPlugin: '',
fancy: ''
};
var settings = $.extend({}, defaults, options);
return this.each(function () {
//plugin code
if (options.fancy){
$.options.fancyPlugin(options.fancyObject);
}
});
};
$(selector).pluginName({fancy:true, fancyPlugin: 'fancybox', fancyObject: $(selector)});