Ошибка jquery при встраивании внешнего JavaScript в Drupal 7 - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть код JavaScript, который:

   <script type="text/javascript">
  (function ($) {
  var speed = 50;
    var pic, numImgs, arrLeft, i, totalWidth, n, myInterval; 

$(window).load(function(){
    pic = $("#slider").children("img");
    numImgs = pic.length;
    arrLeft = new Array(numImgs);

    for (i=0;i<numImgs;i++){

        totalWidth=0;
        for(n=0;n<i;n++){
            totalWidth += $(pic[n]).width();
        }

        arrLeft[i] = totalWidth;
        $(pic[i]).css("left",totalWidth);
    }

    myInterval = setInterval("flexiScroll()",speed);
    $('#imageloader').hide();
    $(pic).show();  
});

function flexiScroll(){

    for (i=0;i<numImgs;i++){
        arrLeft[i] -= 1;        

        if (arrLeft[i] == -($(pic[i]).width())){    
            totalWidth = 0; 
            for (n=0;n<numImgs;n++){
                if (n!=i){  
                    totalWidth += $(pic[n]).width();
                }           
            }   
            arrLeft[i] =  totalWidth;   
        }                   
        $(pic[i]).css("left",arrLeft[i]);
    }
}
}(jQuery));
  </script>

Если я удаляю тег функции встраивания (function ($) {, я получаю ошибку Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function и если я заключаю его в этот тег, я получаю Uncaught ReferenceError: flexiScroll is not defined

Как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Разве это не должно быть })(jQuery);?

Совсем не специалист по jQuery, но это то, что у меня есть в моих скриптах?

0 голосов
/ 14 декабря 2011

setInterval () - это стандартная функция Javascript, а не JQuery.

Вы можете назвать это, используя это как это

myInterval = setInterval(function() {
            flexiScroll();
        },2000);
...