2014-11-06 57 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