2013-03-14 101 views
0

我必须让我的脑海一轮的变量范围的问题,可能与一些帮助:)Mootools的变量范围问题

我在的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错误是预览未定义。

+2

所有的变量定义在其中domready中回调已不能直接访问私有函数。 – 2013-03-15 13:36:40

回答

0

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

我没有改变,虽然一行:

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

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