我有一个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
如何解决这个问题?
答案 0 :(得分:1)
它不应该是})(jQuery);
吗?
根本不是jQuery专家,而是我脚本中的内容?
答案 1 :(得分:0)
setInterval()是一个标准的Javascript函数而不是JQuery。
您可以像这样使用它来调用它
myInterval = setInterval(function() {
flexiScroll();
},2000);