0

我无法触发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() 而不是 $()。

我已经为此奋斗了好几天了。任何想法都非常感谢!

4

1 回答 1

0

我想我明白问题出在哪里了。当您触发 mousedown 时,它只会在您单击时触发插件以使用指定的元素;它实际上不应该显示任何内容...直到您单击它或触发单击。

尝试类似的东西

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

尽管我会寻找一种解决方案来使fancybox按预期工作,但 $('.fancybox').fancybox();

于 2013-01-25T11:30:50.617 回答