jQuery报错 Object [object Object] has no method

随便一个字 2014-11-20 09:54:40
我想在首页banner上加个轮播效果 在网上下载了个效果,然后放进去结果报错 Object [object Object] has no method 'slide'
这是jQuery调用

$(function(){
$("#slide").slide({
affect:4,
time:3000,
speed:400,
dot_text:true,
});
});

这是jQuery代码
 
(function($){
$.fn.slide=function(options){
var defaults= {
affect:4, //1:上下滚动; 2:幕布式; 3:左右滚动;4:淡入淡出
time: 4000, //间隔时间
speed:500, //动画快慢
dot_text:true,//按钮上有无序列号
};
var opts=$.extend(defaults,options);
var $this=$(this);
var ool=$("<div class='dot'><p></p></div>");
var $box=$this.find("ul");
var $li=$box.find("li");
var timer=null;
var num=0;

$this.append(ool);
$box.find("li").each(function(i){
ool.find("p").append($("<b></b>"));
if(opts.dot_text){
ool.find("b").eq(i).html(i+1)
}
})
ool.find("b").eq(0).addClass("cur");
switch(opts.affect){
case 1:
break;
case 2:
$box.find("li").css("display","none");
break;
case 3:
$box.css({"width":$li.eq(0).width()*$li.length});
$li.css("float","left");
break;
case 4:
$box.find("li").css("display","none");
break;
}
$box.find("li").eq(0).show(0);
ool.find("b").mouseover(function(){
num=$(this).index();
run ();
})
timer=setInterval(auto,opts.time);
function auto(){
num<$box.find("li").length-1?num++:num=0;
run();
}
function run(){
ool.find("b").eq(num).addClass("cur").siblings().removeClass("cur");
switch(opts.affect){
case 1:
$box.stop(true,false).animate({"top":-240*num},opts.speed);
break;
case 2:
$box.find("li").css({"position":"absolute"});
$box.find("li").stop(false,true).fadeOut(opts.speed).eq(num).slideDown(opts.speed);
break;
case 3:
$box.stop(true,false).animate({"left":-670*num},opts.speed);
break;
case 4:
$box.find("li").css({"position":"absolute"});
$box.find("li").stop(false,true).fadeOut(opts.speed).eq(num).fadeIn(opts.speed);
break;
}
}
$this.mouseover(function(){
clearInterval(timer);
})
$this.mouseout(function(){
timer=setInterval(auto,opts.time);
})
}
})(jQuery)

这是HTML
<div id="slide" class="wrap af4">
<ul class="slidebox">
<?php
$dosql->Execute("SELECT * FROM `#@__gallery` WHERE (`classid`='$cid' or `parentstr` LIKE '%$cid%') AND `delstate`='' AND `flag` like '%f%' ORDER BY `orderid` DESC");

while($row = $dosql->GetArray())
{
?>
<li><a style="visibility: visible; display: block;">
<img width="335px" height="355px" src="../<?php echo $row['picurl']; ?>" class="Picture" alt="<?php echo $row['title']; ?>" />
</a></li>
<?php
}
?>
</ul>
</div>

现在情况是图片不动。。。请问到底是什么情况?
...全文
413 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-11-20
  • 打赏
  • 举报
回复
两处错误: 第一段代码的第 6 行,第二段代码的第 8 行 行尾都多了个逗号
小在在 2014-11-20
  • 打赏
  • 举报
回复
有可能是你的js有缓存,清一下缓存试试
xuzuning 2014-11-20
  • 打赏
  • 举报
回复
你的 main.js 不是只有 8 行吗? 怎么会在第 14 行报错?
随便一个字 2014-11-20
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
你的第二段代码要在 jquery.js 之后加载 你的第一段代码要在第二段代码之后运行 纠正那两处错误之后,已通过测试 如果还有错误,请贴出错误信息。 光说个“不行”是不行的!
我把第一段代码写在main.js里

$(function(){
	$("#slide").slide({
		affect:4,
		time:3000,
		speed:400,
		dot_text:true
	});
});
第二段代码写在L_slide.js里


(function($){
	$.fn.slide=function(options){
       var defaults= {
		   affect:4,     //1:上下滚动; 2:幕布式; 3:左右滚动;4:淡入淡出
		   time: 4000,   //间隔时间
		   speed:500,    //动画快慢
		   dot_text:true //按钮上有无序列号
	   };
	   var opts=$.extend(defaults,options);
		   var $this=$(this);
		   var ool=$("<div class='dot'><p></p></div>");
		   var $box=$this.find("ul");
		   var $li=$box.find("li");
		   var timer=null;
		   var num=0;
	   
	   $this.append(ool);
	   $box.find("li").each(function(i){
			ool.find("p").append($("<b></b>"));
			if(opts.dot_text){
				ool.find("b").eq(i).html(i+1)
			}
       })
	   ool.find("b").eq(0).addClass("cur");
	   switch(opts.affect){
		   case 1:
		      break;
		   case 2:
		      $box.find("li").css("display","none");
		      break;
		   case 3:
			   $box.css({"width":$li.eq(0).width()*$li.length});
			   $li.css("float","left");
			   break;
		   case 4:
		      $box.find("li").css("display","none");
		      break;
	   }
	   $box.find("li").eq(0).show(0);
	   ool.find("b").mouseover(function(){	
			num=$(this).index();
			run ();
		})
		timer=setInterval(auto,opts.time);
			function auto(){
				num<$box.find("li").length-1?num++:num=0;
				run();
			}
		function run(){
			ool.find("b").eq(num).addClass("cur").siblings().removeClass("cur");
				switch(opts.affect){
				    case 1:
						$box.stop(true,false).animate({"top":-240*num},opts.speed);
						break;
					case 2:
						$box.find("li").css({"position":"absolute"});
						$box.find("li").stop(false,true).fadeOut(opts.speed).eq(num).slideDown(opts.speed);
						break;
					case 3:
						$box.stop(true,false).animate({"left":-670*num},opts.speed);
						break;	
					case 4:
						$box.find("li").css({"position":"absolute"});
						$box.find("li").stop(false,true).fadeOut(opts.speed).eq(num).fadeIn(opts.speed);
						break;	
				}
		}
		$this.mouseover(function(){
			  clearInterval(timer);	
		})
		 $this.mouseout(function(){
			  timer=setInterval(auto,opts.time);	
		})
}
})(jQuery)
html 调用

		<script type="text/javascript" src="template/skin/js/jquery.js"></script>
		<script type="text/javascript" src="template/skin/js/L_slide.js"></script>
		<script type="text/javascript" src="template/skin/js/main.js"></script>
然后还是没动啊 页面报了个错 Uncaught TypeError: Object [object Object] has no method 'slide' main.js:14
xuzuning 2014-11-20
  • 打赏
  • 举报
回复
你的第二段代码要在 jquery.js 之后加载 你的第一段代码要在第二段代码之后运行 纠正那两处错误之后,已通过测试 如果还有错误,请贴出错误信息。 光说个“不行”是不行的!
随便一个字 2014-11-20
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
两处错误: 第一段代码的第 6 行,第二段代码的第 8 行 行尾都多了个逗号
去掉也不行啊

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧