2014-11-06 54 views
1
Jquery 1.11.1 
FancyBox 2.1.5 

完全按标题描述,

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

我只是埋着头,并自第一个选项去它可以工作,但我不能以这种方式将选项传递给FancyBox。

任何想法?谢谢!

+0

你能提供图书馆的链接吗? – 2014-11-06 17:57:37

+0

http://fancybox.net/api – Trip 2014-11-06 17:58:17

+0

它的功能是使用jQuery命名格式,所以这就是为什么,看到这一点:HTTP://www.sitepoint.com/5-ways-declare-functions-jquery/ – 2014-11-06 17:59:25

回答

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

...它类似于情况下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

+0

感谢您的更新@JFK – Trip 2014-11-10 18:44:32

1

只是要发布这个作为部分答案。使用工作非官方的语法,我可以这样写:

$.fancybox({ content: elem }); 

然后我可以通过选项还有elem