0

我在思考变量范围时遇到了问题,需要一些帮助:)

我正在 joomla 中设置一个可以旋转图像的模块。我有一些我在非 Joomla 网站上使用过的代码,效果很好。但是,我已经移植了它,并且遇到了我认为是可变范围问题的问题,因此任何想法都会很棒。

很抱歉代码很长,但我包含了整个函数,以防万一(当它工作时)它可能对其他人有帮助。

function slideshow(container,containerCaption,previewCode,timer,classis,headerId,thumbOpacity,titlebar){
    var showDuration = timer;
    var container = $(container);
    var images = $(container).getElements('span');
    var currentIndex = 0;
    var interval;

    var preview = new Element('div',{
        id: containerCaption,
        styles: {
            opacity: thumbOpacity
        }
    }).inject(container);

    preview.set('html',previewCode);
    images.each(function(img,i){ 
    if(i > 0) {
        img.set('opacity',0);
    }
});

var show = function() {
    images[currentIndex].fade('out');
    images[currentIndex = currentIndex < images.length - 1 ? currentIndex+1 :         0].fade('in');

    var title = '';
    var captionText = '';

    if(images[currentIndex].get('alt')) {
        cap = images[currentIndex].get('alt').split('::');
        title = cap[0];
        captionText = cap[1];
        urltoUse = cap[2];
        preview.set('html','<span class="lctf1"><ahref="'+urltoUse+'">' 
            + title + '</a></span>' 
            + (captionText ? '<p>' + captionText + '</p>' : ''));
        }
    };

    window.addEvent('domready',function(){
        interval = show.periodical(showDuration);
    });
}

window.addEvent('domready',function() {
    container = "slideshow-container";
    containerCaption ="slideshow-container-caption";
    previewCode = '<span ><a href="<?php echo $itemurl[0];?>"><?php echo $itemtitle[0];?></a></span><p ><?php echo $itemdesc[0];?></p>';
    timer = <?php echo $slidetime*1000;?>;
    classis = 1;
    headerId = "";

    thumbOpacity =0.7;
    titlebar = "<?php echo $showTitle;?>";
    if($(container)){
        slideshow(container,containerCaption,previewCode,timer,classis,headerId,thumbOpacity,titlebar);
    }
});

引发的 javascript 错误是预览未定义。

4

1 回答 1

0

您的代码似乎有效,我在这里做了一个 jsfiddle:http: //jsfiddle.net/7E2MX/3/运行没有错误。

我确实改变了一行:

var images = $(container).getElements('span');

var images = $(container).getElements('img');
于 2013-03-20T07:03:46.100 回答