1

所以我试图让我的表格工作。我遇到了两个错误,无法弄清楚它们到底发生在哪里。第一个是:

Uncaught RangeError: Maximum call stack size exceeded
e.extend.each
$.extend.ready
$.extend.ready
$.extend.ready... //there are literally 50+ more $.extend.ready scripts below this

此错误必须处理 jquery 文件,因为我删除了其他两个以找出它的来源,并且当我删除 jquery 文件时错误消失了。该文件是 jquery-1.7.1min.js。我不能将更高版本用于我无法控制的目的。

第二个是:

递归过多:

if ($.browser.mozilla || $.browser.opera) {
document.removeEventListener("DOMContentLoaded", $.ready, false);...//the first line basically

我对这两个课程都进行了搜索,但问题似乎与我的脚本中的任何错误无关。我有一个我正在尝试运行的表单,我觉得这两个问题可能是导致问题的原因。“清除”和“提交”按钮不起作用,因此试图解决我知道的问题,这是我遇到的最后两个问题。

好的,我发现问题出在哪里:

$(function () { //this is the way to run your code at the DOM Ready event

    $('a').click(function () {
        $('html, body').animate({  //this is line 8
            scrollTop: $($(this).attr('href')).offset().top
        }, 1500);
        return false;
    });

});

SCRIPT5007:无法获取未定义或空引用 script.js 的属性“顶部”,第 8 行字符 9

那会是什么?

4

1 回答 1

1

如果您的href属性指向<a name="foo">使用该name属性的命名锚点(例如),那么您不能使用#foo它来解析它,因为#在选择器中匹配id属性,而不是name属性。

在您的情况下,因为#foo不存在,$('#foo').offset()将产生一个没有.top属性的空对象。

你可以:

  1. 使用id属性而不是name锚点,或者
  2. 使用$([name=...])选择器(已剥离前导#),或
  3. .data()使用指向所需元素的函数存储一些其他元数据。
于 2013-07-22T15:42:46.280 回答