在我正在处理的网站上我有一个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');
答案 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链接的一部分的工作原理。