在元素上附加fancybox / lightbox / idontknowbox函数

时间:2010-05-10 12:14:27

标签: jquery function jquery-plugins lightbox fancybox

我正在开发一个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();

在链接上正确构建插件。 有什么想法吗?

1 个答案:

答案 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)});