我无法弄清楚这个jQuery中的错误

时间:2009-10-27 06:51:54

标签: javascript jquery html css firebug

有问题的页面是...... http://schnell.dreamhosters.com/index.php?page=gallery#

我使用Firebug调试我的jQuery和其他代码花絮,它已被证明对Javascript / jQuery调试非常有用。然而,与此同时,它一直是我经历过的最令人沮丧的调试经历之一。我不确定为什么,但有时似乎我可以从教程,角色角色复制别人的方法,但仍然会出现错误。

无论如何,问题在于Firebug声称源代码的第20行存在错误。

缺少:属性ID之后 [打破此错误] $('#table')。animate({“left:”+ attr +“px”},2000); \ n

这个bug对我来说似乎是一个巨大的负担,因为冒号就在那里!这就是调试jQuery / Javascript有时会如此痛苦的原因。错误信息相当令人费解,有时甚至对我没有任何意义。或许这只是Firebug。

无论哪种方式,我要去的目标是我正在尝试动态更改动画功能,以便您点击左箭头越多,图像网格越远(由于性质) CSS'左'属性)。我有Javascript变量和隐藏的输入标记来帮助保存基本值,但主要的障碍是让animate函数识别这些变量。接近我可以告诉它只接受关于如何动画的参数的字符串文字,文档对我没有帮助,因为它没有讨论变量与动画的使用,好像它是不可能的。

好吧,我只想说我不喜欢不可能,他喜欢我的方式很多。

2 个答案:

答案 0 :(得分:3)

传递给animate函数的对象文字格式不正确,应该是:

$('#table').animate({left: attr + "px"}, 2000);

编辑:仔细查看您的代码,您还尝试从id =“count”的输入中获取值,并且您缺少#字符以获得ID选择器:< / p>

var count = +$('#count').val(); // get #count value as Number

您也在递增此count变量,但您应首先将其转换为Number,因为value元素的input属性为字符串。 (我是使用作业右侧的一元加号运算符完成的。)

您必须将其转换为数字,因为如果您添加两个变量,其中一个是字符串,则会发生连接:

 "1" + 1 == "11"

答案 1 :(得分:0)

尝试:

$('#table').animate({left: attr}, 2000);

这里的“px”测量单位不是必需的。除此之外,以上是正确创建匿名对象。你只是把一个字符串放在花括号内。