Fancybox不会触发$(elem).click(),但会在“真正的”点击上触发吗?

时间:2013-01-25 10:32:02

标签: jquery triggers click fancybox

我无法触发fancybox。我将它设置为在您单击元素时触发。我仍然不知道为什么,但由于某种原因fancybox只有在使用live()绑定它时才有效,有点像这样:

$(document).ready(function() {
    // This works
    $('.fancybox').live('mousedown', function() {
        $(this).fancybox();
    });

    // This doesn't
    $('.fancybox').fancybox();
});

在这里阅读更多相关内容: Fancybox is loaded, but nothing happens, and no errors?

问题是,它只有在我实际点击元素时才有效。如果我尝试使用以下命令触发点击:

$('.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()而不是$()。

我已经和他斗争了好几天了。任何想法都非常感激!

1 个答案:

答案 0 :(得分:0)

我想我知道问题所在。当你触发mousedown时,它只是触发插件来点击它时使用指定的元素;它实际上不应该显示任何东西......直到你点击它或触发点击。

尝试类似

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

虽然我会寻找一个解决方案,让fancybox按预期运行,使用$('。fancybox')。fancybox();