Fancybox 1.2.5 callbackOnShow - 我有一些语法错误

时间:2013-08-28 17:47:38

标签: javascript jquery html fancybox

我试图在加载框时运行一个函数,对于v1.2.5,它似乎应该是callbackOnShow属性。这是我的代码,我有一个语法错误,但由于我是一个菜鸟,我很难搞清楚。

$("a#inline").fancybox({
            'hideOnContentClick': false,
            'autoDimensions': false,
            'frameWidth': 932,
            'frameHeight': 496,
            'padding': '0',
            'overlayOpacity': '0.7',
            'callbackOnShow': $(function () {
$('#palette').on('mouseover', 'a', function (event) {
    $('#PaletteColorName').text("Color: " + event.target.title);
});
$('#palette').on('mouseleave', 'a', function () {
    $('#PaletteColorName').text("Color: ");
});
});

欢迎可能的替代方案。这是我试图在fancybox中运行的小提琴版本。

JS Fiddle

1 个答案:

答案 0 :(得分:1)

那里有一些东西。您不应将选项括在引号中。

$("a#inline").fancybox({
   hideOnContentClick: false,
   autoDimensions: false
   //etc...
});

接下来,您没有正确指定回调函数。通过编写这样的函数:callBack: $(function() { ... });该函数实际上将被执行。你不希望那样......你希望函数在某个事件上运行。所以你应该做的是:

$('a#inline').fancybox({
    callbackOnShow: function() {
        $('#palette').on('mouseover', 'a', function(event) {
            //...
        });
    }
});

我不确定你在使用的文本编辑器中是否存在这种情况,或者在此处粘贴代码时格式化了,但是虽然不是绝对必要,但它是非常好主意使用适当的缩进。它使得发现语法错误变得容易得多。

最后,您应该考虑为Firefox安装Firebug,如果您还没有。它将帮助您找出语法错误的位置。