【问题标题】:jquery error while embedding external javascript in drupal 7在drupal 7中嵌入外部javascript时出现jquery错误
【发布时间】:2011-12-13 23:18:21
【问题描述】:

我有一个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

如何解决这个问题?

【问题讨论】:

    标签: ajax drupal jquery drupal-7


    【解决方案1】:

    不应该是})(jQuery);吗?

    根本不是 jQuery 专家,但这就是我的脚本中的内容?

    【讨论】:

      【解决方案2】:

      setInterval() 是一个标准的 Javascript 函数,而不是 JQuery。

      你可以这样调用它

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多