$ .fancybox(elem)有效但$(elem).fancybox()没有

时间:2014-11-06 17:52:09

标签: jquery fancybox fancybox-2

Jquery 1.11.1
FancyBox 2.1.5

正如所描述的标题,

$.fancybox( elem )   // works!
$( elem ).fancybox() // Returns `elem`, but doesn't instantiate the Popup

我会低头并选择第一个选项,因为它有效,但我不能以这种方式将选项传递给FancyBox。

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

将此作为部分答案发布。使用工作的非官方语法,我可以写:

$.fancybox({ content: elem });

然后我可以传递选项以及elem

答案 1 :(得分:1)

案例1

$( elem ).fancybox({
    // API options
});

...只是将fancybox绑定到elem,但仍然需要click事件(在elem上)来触发fancybox。请参阅 JSFIDDLE

案例2

$.fancybox(elem,{
    // API options
});

...使用elem作为内容以编程方式触发fancybox。的 JSFIDDLE

案例3

$.fancybox({ 
    content: elem,
    // other API options
}); 

...它与 case 2 类似,但使用的语法不同。它通常用于将任意HTML作为内容传递(它通常需要将type设置为html)。的 JSFIDDLE

案例4

如果elem是引用(例如inline容器),那么您可以

$.fancybox({ 
    href: elem,
    // other API options
}); 

<强> JSFIDDLE

案例5

$.fancybox([object],{
    // API options
});

...您可以传递javascript 对象的集合,例如:

var elem = [{
    href: "images/image01.jpg",
    title: "title 01"
}, {
    href: "images/image02.jpg",
    title: "title 02"
}];

参见 JSFIDDLE

注意:以上所有方案均适用于fancybox v1.3.4或v2.x