2011-05-12 112 views
15

在JQuery 1.6.1中,我们可以使用+=-=css(),就像我们可以使用animate()一样,但这不起作用。有没有人看到代码的问题?在jQuery 1.6.1中使用箭头键移动div不起作用

$(document).keydown(function(e) { 
    if (e.which == 37) { //37 left arrow key. 
     $('div').css('left', '-=10px') 
    } 
}); 

检查http://jsfiddle.net/QLFEy/3

+2

主持人说明:此问题下的评论已被删除,因为评论上的社区标志会很快导致一次自动删除的脱节和令人困惑的对话。 – 2011-05-13 04:26:27

回答

16

你的代码是正确的,应该工作。看着jQuery bug跟踪器,我在http://bugs.jquery.com/ticket/9237找到了一个已经打开的票。它适用于宽度和高度,但不适用于至少左侧。据售票,修复应该可以在1.6.2

更新11年5月13日

问题一直固定修复该问题目前在WIP版本可以发现在http://code.jquery.com/jquery-git.js。这是带有最新修补程序的jQuery的最新非生产版本。该修补程序应该在即将推出的1.6.2版本中正式提供。

+2

该错误引用带连字符的属性。 'left'不是连字符。 – 2011-05-12 19:52:26

+0

@Rocket请在发布之前熟悉jQuery changlog。根据jQuery 1.6更改日志,我们可以使用左侧的http://blog.jquery.com/。 – Pinkie 2011-05-12 19:56:21

+0

@Pinkie:请熟悉这个问题(你问过它)。根据你发布的jsFiddle,我们不能使用左边,似乎是一个错误。 – 2011-05-12 19:57:15

1

显然是jQuery中的一个bug。看起来jQuery并没有在值后添加“px”。

[2011-05-12 21:46:17] CSS - file://localhost/D:/test.html 
DOM style property 
Invalid value for property: margin-left 
Line 1: 
    260 
    ---^ 
+0

heh? 'margin-left'从哪里来的? – Neal 2011-05-12 19:51:03

+1

我测试过各种CSS属性。奇怪的是,高度,宽度,但不填充,边距,左等工作... – seler 2011-05-12 19:52:04