Откройте fancybox из функции - PullRequest
30 голосов
/ 23 февраля 2011

Я пытаюсь открыть необычную коробку из имеющейся у меня функции - короче, мой HTML-код выглядит так;

<a href="#modalMine" onclick="myfunction(this); return false;">
  click
</a>

и часть моей функции выглядит так;

function myfunction(me) {
    $(me).fancybox({
        'autoScale': true,
        'transitionIn': 'elastic',
        'transitionOut': 'elastic',
        'speedIn': 500,
        'speedOut': 300,
        'autoDimensions': true,
        'centerOnScroll': true,
    });
}

Вышеописанное работает в IE, но не в FireFox или Chrome - есть идеи, как это исправить? Я знаю, что по одной причине активировать другую ссылку, но я надеюсь, что другое решение возможно.

Ответы [ 11 ]

0 голосов
/ 05 ноября 2015

если jQuery.fancybox.open недоступен (в fancybox 1.3.4), вам может понадобиться использовать semafor, чтобы обойти проблему рекурсии:

<a href="/index.html" onclick="return myfunction(this)">click me</a>

<script>

var clickSemafor = false;
myfunction(el)
{
 if (!clickSemafor) {
   clickSemafor = true; 
   return false; // do nothing here when in recursion
 }
 var e = jQuery(el); 
 e.fancybox({
    type: 'iframe',
    href: el.href
  }); 
 e.click();  // you could also use e.trigger('click');
 return false; // prevent default

}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...