所以我在div上使用fancybox 2。但由于某种原因,当我单击div和fancybox打开时,它会隐藏div(仅显示包装div的轮廓),而我可以获得div的唯一方法是重新加载页面。其他人有这个问题吗?如果是这样,我该如何解决?
昨晚我搜索了谷歌,无法找到有这个问题的人。在阅读license page之后,我认为fancybox 2不支持onClose
或onStart
属性。
这是我的div
<div class='photo'><img class='fancybox' src='images/jpge1.jpg></div>
$(document).ready(function() {
$('.fancybox).click(function() {
$('.fancybox').fancybox();
});
});
答案 0 :(得分:2)
您的代码存在一些问题(未提及语法错误:您的src
属性且您的jQuery选择器未正确引用已关闭)
如果您将fancybox绑定到锚<a>
以外的其他元素,则fancybox会将其视为内联内容,并始终将其放回display:none
属性。
当你这样做时
$(document).ready(function() {
$('.fancybox).click(function() {
$('.fancybox').fancybox();
});
});
click
选择器上的第一个.fancybox
仅将自己绑定到fancybox,但它只会在第二个click
因此,如果您想将fancybox正确绑定到锚点以外的元素(在您的情况下为div
),然后在fancybox内打开图像(位于div
内)而不隐藏它关闭fancybox后,你必须这样做:
通过将类 fancybox设置为div
,将fancybox绑定到img
,而不是<div class='photo fancybox'>
<img src='images/jpge1.jpg' />
</div>
标记
$(document).ready(function () {
$('.fancybox').click(function () {
var href = $(this).find("img").attr("src");
$.fancybox({
href: href,
type: "image"
});
return false;
});
});
然后使用此代码:
{{1}}
参见 JSFIDDLE