Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите с fancyBox (https://javascript.ru/forum/events/34055-pomogite-s-fancybox.html)

Le-mark43 19.12.2012 11:44

Помогите с fancyBox
 
Всем привет. Ребят, нужна помощь в просветлении, помогите его достичь!
Итак, суть:
есть выборный список такого вида:
<select>
<option class='opt' value='1'>1</option>
<option class='opt' value='2'>2</option>
<option class='other' value='0' >Другое</option>
</select>


по клику на выбор "другое" должен срабатывать fancyBox с формой для ввода данных. (форма ввода, php обработчик - все есть)
и вот тут то блин трабла...
я никак не могу повесить fancybox на select.
опцию скормить получается, да только бестолку:
$('.other').fancybox();

один из необходимых артибутов для работы fancybox является "HREF".
а ссылку в select не впихнешь (у меня не получилось), браузер её просто не видит.
я пробовал вставить атрибут HREF в тег <option>,
<option class='other' value='0' href='form.html' >Другое</option>

браузер видит, но fancybox на него никак не реагирует.
то есть функция срабатывает, дивы создаются, экран темнеет, но вот дальше НИЧЕГО... (я так понимаю не ловит Href)

а теперь вопрос, точнее просьба:
пожалуйста помогите решить эту задачу.
наверняка есть какой то более простой способ.
Спасибо!

ОлегА 19.12.2012 13:41

$('.other').live('click', function(){
$.fancybox('test.php',{
          onComplete : function(){

          }
      });
})

Le-mark43 19.12.2012 16:25

не работает. ошибка unexpected token
делаю вот так:
$('.other').live('click', function(){
$.fancybox('form.html',{
          onComplete : function(){
  "padding" : 20, 
      "imageScale" : false, 
      "zoomOpacity" : false, 
      "zoomSpeedIn" : 1000,	
      "zoomSpeedOut" : 1000,	
      "zoomSpeedChange" : 1000, 
      "frameWidth" : 700,	 
      "frameHeight" : 600, 
      "overlayShow" : true, 
      "overlayOpacity" : 0.8,	 
      "hideOnContentClick" : false, 
      "centerOnScroll" : false 

          }
      });
})


если делать:
onComplete : function(){
 $(".other").fancybox(
{ 
... бла бла (вышеперечисленные настройки)
});
          }

ошибки нет, но и вообще ничего не происходит.
где я не прав? и как правильно?

ОлегА 19.12.2012 16:47

блин улыбнуло))))

а зачем вы сунули свойства fancyboxa в функцию onComplete ??
запихайте все эти свойства туда же где и сво-во onComplete находится, а onComplete можете вообще не писать, в onComplete можно задать функцию которая будет вызваться после успешного октрывания окна fancybox

ОлегА 19.12.2012 16:50

Цитата:

Сообщение от Le-mark43
если делать:
1 onComplete : function(){
2 $(".other").fancybox(
3 {
4 ... бла бла (вышеперечисленные настройки)
5 });
6 }

ошибки нет, но и вообще ничего не происходит.
где я не прав? и как правильно?


ничего не происходит потому что, надо задать url 1-ым параметром какой файл нужно открыть в окошке fancybox, url допустим index.html и все что будет у вас в index.html отобразится в окошке fancybox

Le-mark43 19.12.2012 17:34

Сорри, стормозил, хотя возможно тормозить продолжаю...
$('.other').live('click', function(){
$.fancybox('form.html',{
          
      "padding" : 20,
      "imageScale" : false,
      ...
 
      });
})

не срабатывает!
если делаю:
$.fancybox(function(){
       "url" : 'form.html',   
      "padding" : 20,
      "imageScale" : false,
      ...
 
      });

- unexpected token...
тоже самое если:
$(".other").fancybox(
{
      "url" : 'form.html',   
      "padding" : 20,
      "imageScale" : false,
      ...
 
      });

ОлегА 20.12.2012 08:08

попробуйте просто без всяких нюшек

$('.other').live('click', function(){
$.fancybox('test.html',{
          onComplete : function(){
alert('fancybox открылся!')
          }
      });
})


Часовой пояс GMT +3, время: 21:00.