我一直试图为我的一个JavaScript动画添加延迟,而我得到的只是一个错误 “对象不支持属性或方法'延迟'”。我正在测试IE 8的兼容性。
以下是我尝试过的代码。
来自
$('a',$(this)).stop().animate({'marginTop':'200'},1000);
到
$('a',$(this)).stop().delay(1000).animate({'marginTop':'200'},1000);
这是jsfiddle。
最诚挚的问候,
弗农
答案 0 :(得分:0)
这样的东西?
$(function(){$('a','body').on('click',function(e){
e.preventDefault();
$(this).delay(1000).animate({marginTop:'200px'},1000);
})
});
SEE Fiddle:http://jsfiddle.net/7hxv3kd4/2/
答案 1 :(得分:0)
我在代码中进行了以下两项更改
</br> to <br/>
Jquery library
添加到框架&amp; JSFiddle的扩展部分我相信它运作正常,请参阅:http://jsfiddle.net/7hxv3kd4/3/
答案 2 :(得分:0)
你的小提琴有两个主要问题:
1)动画代码在jQuery之前设置。这就是你在控制台中获得TypeError: $ is not defined
的原因。在代码之前的<head>
中包含jQuery,没有任何包装函数:
<head>
....
<script>
/* jQuery here */
</script>
<script>
$(function() {
/* your code here */
});
</script>
....
</head>
2)您使用的是一个非常旧的jQuery版本1.3.2,没有延迟功能。这就是为什么在致电TypeError: undefined is not a function
时获得.delay()
的原因。
要么使用更新版本的jQuery(&gt; = 1.4.3),要么自己定义延迟函数:
$(function() {
// original $.fn.delay copied from jQuery v1.4.3 source:
jQuery.fn.delay = function( time, type ) {
time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
type = type || "fx";
return this.queue( type, function() {
var elem = this;
setTimeout(function() {
jQuery.dequeue( elem, type );
}, time );
});
};
/* Your code here now works with .delay() */
});
更新FIDDLE here,延迟时间为1500。