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

можете ли вы предоставить ссылку на библиотеку? –

+0

http://fancybox.net/api – Trip

+0

его функции используют формат пространства имен jquery, поэтому вот что: http: //www.sitepoint.com/5-ways-declare-functions-jquery/ –

ответ

1

Случай 1:

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

... это просто привязка fancybox к elem, но для этого требуется событие click (на elem), чтобы вызвать fancybox. См JSFIDDLE

Случай 2:

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

... запускает FancyBox программно с использованием elem как его содержание. JSFIDDLE

Случай 3:

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

... это похоже на случае 2 к но используя другой синтаксис. Обычно он используется для передачи любого произвольного HTML в качестве контента (в основном это требует type, который должен быть установлен как html). JSFIDDLE

Случай 4:

Если elem является ссылкой (inline контейнер, например), то вы могли бы сделать

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

JSFIDDLE

Case 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

1

Просто отправьте это как частичный ответ. Использование рабочего неформальную синтаксиса, я могу написать:

$.fancybox({ content: elem }); 

Тогда я могу передать параметры, а также elem

Смежные вопросы