jQuery Fancybox选项被忽略

时间:2010-09-27 14:34:40

标签: jquery fancybox

在我正在处理的网站上我有一个fancybox在页面加载时触发显示隐藏<div>的内容,但由于某种原因,任何选项,如高度,宽度等都会被忽略。我需要能够使用'callbackOnShow:'选项,因为我需要在fancybox中有一些click()函数。

我的代码如下,并且在文档就绪函数中:

我把高度5000的东西作为测试,因为似乎没有任何效果。

// FANCY BOX
    if ($('#link').length) {
        $('#link').click(function(){
            $('#link').fancybox({
                'scrolling' : 'no',
                'hidth': 5000,
                'height': 465,
                'content' : $("#lightbox-content").html()
            });
        });
    }

    $("#link").fancybox().trigger('click');

知道为什么这不能按预期工作?

谢谢,戴夫

更新代码:

// FANCY BOX
$("#link").fancybox({
    'scrolling' : 'no',
    'width': 5000, 
    'height': 2000,
    'callbackOnShow': function() { alert('hello'); },
    'content' : $("#lightbox-content").html()
}).trigger('click');

1 个答案:

答案 0 :(得分:1)

它不会重新创建fancybox,因此当您调用$("#link").fancybox()时,您正在创建一个带有默认选项的fancybox,然后 ...稍后指定所选的选项不要覆盖你已经使用的默认值。

为了得到你想要的东西,只需在你打电话时提供选项:

$("#link").fancybox({
  'scrolling' : 'no',
  'width': 5000, //was hidth, make sure to correct this
  'height': 465,
  'content' : $("#lightbox-content").html()
}).trigger('click');

同样在jQuery中,不需要进行.length检查,如果找到它会执行某些操作的元素,如果没有,那么它就不会......它在内部处理为jQuery链接的一部分的工作原理。