代码之家  ›  专栏  ›  技术社区  ›  Mathias Schnell

我不知道这个jquery中的错误

  •  0
  • Mathias Schnell  · 技术社区  · 16 年前

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

    我使用Firebug来调试我的jquery和其他代码片段,这对于javascript/jquery调试非常有用。然而,同时,它也是我经历过的最令人沮丧的调试体验之一。我不知道为什么,但有时我似乎可以从教程中复制其他人的方法论,一个字符一个字符,但仍然会出现错误。

    无论如何,这里的问题是Firebug声称在源代码的第20行有一个bug。

    缺少:在属性ID之后 [此错误中断]$('table').animate()left:“+attr+”px“,2000);\n

    这个bug对我来说像是一个巨大的负载,因为结肠 就在那儿吗 !这就是为什么调试jquery/javascript有时会很麻烦的原因。错误信息相当复杂,有时甚至对我来说都没有意义。或许那只是萤火虫。

    不管怎样,我在这里要达到的目标是,我要动态地改变动画功能,这样你点击左箭头越多,图像网格就越左(由于CSS“左”属性的性质)。我有javascript变量和一个隐藏的输入标记来帮助保存基本值,但是主要的障碍是获取动画函数来识别这些变量。据我所知,它只接受字符串文字作为关于如何动画的参数,而文档对我没有帮助,因为它没有讨论变量与动画的使用,好像这是不可能的。

    好吧,让我们说我不喜欢不可能的事,他很喜欢挡我的路。

    2 回复  |  直到 16 年前
        1
  •  3
  •   Christian C. Salvadó    16 年前

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

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

    编辑 :仔细查看您的代码,您还试图从id=“count”的输入中获取一个值,并且您有一个缺少的字符来拥有一个id选择器:

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

    你也在增加这个 count 变量,但应首先将其转换为数字,因为 value 属性 input 元素是字符串。( 我用作业右侧的一元加运算符来完成。 )

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

     "1" + 1 == "11"
    
        2
  •  0
  •   cletus    16 年前

    尝试:

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

    这里不需要“px”测量单位。除此之外,上面是匿名对象的正确创建。你只是在花括号里放了根绳子。