2

计划用lightbox将一个可滚动的画廊放到网上。我遇到了一个错误,我的代码之一有意外的“:”,预期之一:“}”,“”, ATTR

使用 CMS 变得简单。对于 cmsms 错误,它显示

在文件 /xxx/xxx/public_html/lib/smarty/sysplugins/smarty_internal_templatecompilerbase.php 中的第 702 行

这是我打算放在我的网站上的代码。 http://sorgalla.com/jcarousel/

我将在这里发布我的错误以及之后的完整脚本。

错误代码。

jQuery("#gallery-prev").click(function(){
            if(jQuery("#gallery").position().left < 0 && !jQuery("#gallery").is(":animated")){
                jQuery("#gallery").animate({left : "+=" + imageWidth + "px"});
            }
            return false;
        });

完整的代码。

<script type="text/javascript">
$(window).load(function(){ 

    // Gallery
    if(jQuery("#gallery").length){

        // Fancybox
        jQuery("#gallery li a").fancybox({
            'titleShow'     : false,
            'transitionIn'  : 'elastic',
            'transitionOut' : 'elastic'
        });

        // Variables aren't use properly due to Webkit
        var totalImages = jQuery("#gallery > li").length, 
            imageWidth = jQuery("#gallery > li:first").outerWidth(true),
            totalWidth = imageWidth * totalImages,
            visibleImages = Math.round(jQuery("#gallery-wrap").width() / imageWidth),
            visibleWidth = visibleImages * imageWidth,
            stopPosition = (visibleWidth - totalWidth);

        jQuery("#gallery").width(totalWidth);

        jQuery("#gallery-prev").click(function(){
            if(jQuery("#gallery").position().left < 0 && !jQuery("#gallery").is(":animated")){
                jQuery("#gallery").animate({left : "+=" + imageWidth + "px"});
            }
            return false;
        });

        jQuery("#gallery-next").click(function(){
            if(jQuery("#gallery").position().left > stopPosition && !jQuery("#gallery").is(":animated")){
                jQuery("#gallery").animate({left : "-=" + imageWidth + "px"});
            }
            return false;
        });
    }

});
</script>

感谢所有帮助。谢谢

4

2 回答 2

8

您似乎在使用 smarty,问题是 smarty 与左/右括号 {} 混淆了。尝试用 smarty 的 {literal} 标签包围脚本,即:

{literal}
<script.....

</script>
{/literal}

此外,如果您使用 smarty 3,它可能会在没有文字标签的情况下工作,只需在每个“{”之后和每个“}”之前添加一个空格

jQuery("#gallery").animate({ left : "+=" + imageWidth + "px" });
于 2013-01-30T12:46:27.907 回答
0

看来您的错误在这里:

jQuery("#gallery").animate({left : "+=" + imageWidth + "px"});

这里看来,正确的合成器是 .animate({left: imageWidth + "px"});

您是否对原始示例进行了任何更改?您可以将大量免费的封面流/内容流库用于您的动画画廊。我只熟悉 javascript,这是我最近使用的一个,非常好http://jacksasylum.eu/ContentFlow/

于 2013-01-30T03:08:34.387 回答