我无法触发fancybox。我将其设置为在您单击元素时触发。我仍然不知道为什么,但由于某种原因,fancybox 只有在我使用绑定时才有效live()
,有点像这样:
$(document).ready(function() {
// This works
$('.fancybox').live('mousedown', function() {
$(this).fancybox();
});
// This doesn't
$('.fancybox').fancybox();
});
在此处阅读更多相关信息: Fancybox 已加载,但没有任何反应,也没有错误?
问题是,它仅在我实际单击该元素时才有效。如果我尝试使用以下方式触发点击:
$('.fancybox').trigger('mousedown');
我什么也得不到!它只是行不通。
我需要这样做的原因是因为图像是在画廊中用 PHP 打印出来的(带有缩略图等)。我只想要一个可用画廊的下拉菜单,所以在页面加载时,我隐藏所有缩略图,然后循环浏览它们并创建一个包含所有画廊的下拉菜单。到现在为止还挺好!如果我使用检查器(使用 chrome)显示元素,然后手动单击它,它工作正常!虽然,问题是,当我尝试使用下拉菜单触发点击时,什么也没有发生!
我进行了设置,以便<option>
下拉列表中的每个都具有画廊/缩略图 ID 的数据属性,并且当下拉列表更改时(当您选择一个选项时),它会自动找到正确的图像并触发点击 - 这反过来应该打开一个fancybox。我知道它找到了正确的图像,然后单击它,只是单击它时没有任何反应。
尝试一下!
网址:http: //goo.gl/r4Klf
右键单击内容中的第一个下拉菜单,然后检查它。在它上面,你会看到一堆.ngg-galleryoverview
元素。单击其中一个并删除应用于元素的所有样式(在 element.style 中,样式基本上隐藏了元素)。然后展开元素,你会在其中看到一个.ngg-gallery-thumbnail
. display: none
从造型中移除。您现在应该能够在页面上看到该元素。如果您尝试单击它,fancybox 将打开。但是,如果您尝试使用 来单击它$(the element).trigger('mousedown')
,它将无法正常工作。尝试使用 href 属性定位它,例如:
jQuery('a[href="http://hallarna.se/wp-content/gallery/2013/spoksonatenloggaliten.jpg"]').trigger('mousedown');
请注意,jQuery 处于 noConflict 模式,这意味着您必须使用 jQuery() 而不是 $()。
我已经为此奋斗了好几天了。任何想法都非常感谢!