2013-03-14 97 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');