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/エラーなしで実行されます。

ただし、1行変更しました:

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

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