Fancybox触发器点击

时间:2013-09-07 16:11:22

标签: javascript jquery triggers fancybox fancybox-2

我试图让fancybox触发,如果url中有哈希值,问题是我使用的一些不同的方法从stackoverflow中获取它们在firefox的错误控制台中返回“c not available”。可以在这里找到我尝试这个的网站 http://rojava.se/om/#infor。非常感谢所有帮助

我试过的方法: How to create a direct link to any fancybox box

    <script type="text/javascript">
var thisHash = window.location.hash;
$(document).ready(function() {
 if(window.location.hash) {
  $(thisHash).fancybox({
    padding: 0
    // more API options
  }).trigger('click');
 }
 $('.fancylink').fancybox({
    padding: 0
    // more API options
 });
}); // ready
</script>

第二种方法:Fancybox doesn't trigger on $(elem).click(), but does on "real" click?

jQuery('a[href="http://hallarna.se/wp-content/gallery/2013/spoksonatenloggaliten.jpg"]').trigger('mousedown').trigger('click');

1 个答案:

答案 0 :(得分:2)

你必须做两件事:

<强> 1)。更改您的触发器代码:

目前您正在使用此触发器:

var thisHash = window.location.hash;
if(window.location.hash) {
    $(thisHash).trigger('mousedown').trigger('click');      
}

但是你告诉自己你曾尝试过这篇文章How to create a direct link to any fancybox box的解决方案,因此你的代码必须如下所示:

var thisHash = window.location.hash;
if(window.location.hash) {
    $(thisHash).fancybox().trigger('click');        
}

因为选择器#infor未绑定到fancybox(v1.3.4),所以在触发bind之前需要click

<强> 2)。在fancybox初始化之后调用您的触发器代码。

仍然无效?这是一个悬挂问题。您的触发器代码当前位于文档的<head>部分,但 fancybox.js 文件正在页面底部调用,因此即使按照上面的建议更改代码也会赢得' t触发因为fancybox尚未初始化。

将代码放在之后的fancybox调用和初始化以及结束</body>标记之前,如:

<script type='text/javascript' src='http://rojava.se/wp-content/plugins/easy-fancybox/fancybox/jquery.fancybox-1.3.5.pack.js?ver=1.5.5'></script>
<script type='text/javascript' src='http://rojava.se/wp-content/plugins/easy-fancybox/jquery.easing.pack.js?ver=1.3'></script>

<script type="text/javascript">
jQuery(document).on('ready post-load', easy_fancybox_handler );
jQuery.noConflict();
(function($) {
  $(function() {
    $('#footbuttoncontainer ').click(function() {
      container = $('#footcontentcontainer');
      if(container.height() > 20){
        $('#footcontentcontainer').animate({height:"0"}, 1000);
      } else {
        $('#footcontentcontainer').animate({height:"26vmin"}, 1000);
      }
    });
    var thisHash = window.location.hash;     
    if(window.location.hash) {
      $(thisHash).fancybox().trigger('click');
    }
  });
})(jQuery);
</script>
</body>

注意我在fancybox init之后移动了完整的代码块。

现在看到它使用了网址中包含的hash

http://www.picssel.com/playground/jquery/rojava.html#infor