为什么以下代码段不起作用? 它不会给出任何错误,但它也不起作用 关于空对象我看了here。
<script type="text/javascript">
jQuery(document).ready(function(){
var o = jQuery({});
var block = jQuery('#box');
jQuery('#start').click(function(){
o.queue('custom',function(next){
block.animate({left:"+=500"},1000);
next();
});
o.queue('custom',function(next){
block.animate({left:"-=500"},1000);
next();
});
o.queue('custom',function(next){
block.animate({top:"+=500"},1000);
next();
});
o.queue('custom',function(next){
block.animate({top:"-=500"},1000);
next();
});
o.dequeue('custom');
});
});
</script>
更新1
如果我在出列呼叫之前和之后插入console.log,如下所示:
console.log(o.queue('custom').length);
o.dequeue('custom');
console.log(o.queue('custom').length);
然后我在控制台得到4 0。这意味着函数被添加到队列中并因此出列。
更新2
如果我在块动画之后插入console.log,例如,像这样:
block.animate({left:"+=500"},1000);
console.log('1');
然后我得到1 2 3 4,这意味着所有4个函数都被调用。
更新3
我的HTML非常简单:
1个输入按钮和1个div标签。 div有以下css:
width:200px;height:200px;display:block;background:none repeat scroll 0 0 green
答案 0 :(得分:1)
我让它在jsbin上工作(您可以使用右上角的按钮进行编辑)。
您需要在position:relative
元素上设置#block
。没有它,div
将不会受到所应用的属性更改的影响,因为the initial value of the property is static
)。
在MDN文档中,static
位置表示:
正常行为。顶部,右侧,底部和左侧属性不会 应用
但是,属性当然会针对静态元素进行更改,正如您在example中看到的那样(检查控制台)。但它们没有任何明显的效果。
希望这会有所帮助。您可以将我所做代码的所有其他更改还原,这是在设置位置之前完成的。