我试图让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');
答案 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
: