无法解决JavaScript错误,蹩脚的代码

时间:2018-05-01 14:03:32

标签: javascript jquery web

我的任务是为客户更新网站,他告诉我他需要为某人重新设计网站。

我在第29行遇到错误'未捕获的TypeError:无法读取未定义的属性'top''

我已经完成了一个多小时的故障排除,似乎无法解决它,请发送帮助。顺便说一句,代码被缩小了,我将它弄明白了。

$("#math-captcha").mathCaptcha({
  imgPath: "src/img/",
  operation: "plus",
  introText: "Please enter the result of equation:",
  successFunction: function() {
    form = $("form"), $("#but").append('<button type="submit" style="margin-top: 20px;" class="btn btn-primary btn-md">Send Message</button>'), $(".math-captcha-error").remove()
  },
  failFunction: function() {
    form = $("form"), $("#butt").remove(), $(".math-captcha-error").length < 1 && $("#math-captcha").append("<p class='math-captcha-error'>Wrong result!</p>")
  }
}), $("#p-arrow").click(function() {
  $("html, body").animate({
    scrollTop: $("#about2").offset().top
  }, 1e3)
}), $("#header-arrow").click(function() {
  $("html, body").animate({
    scrollTop: $("#about").offset().top
  }, 1e3)
}), (new WOW).init(),
function(t) {
  "use strict";
  t(document).ready(function() {
    t(window).scroll(function() {
      t(window).scrollTop() >= 100 ? t("img.affix-top").css("display", "none") : t("img.affix-top").css("display", "block")
    })
  }), t("a.page-scroll").bind("click", function(a) {
    var o = t(this);
    t("html, body").stop().animate({
      scrollTop: t(o.attr("href")).offset().top - 50
    }, 1250, "easeInOutExpo"), a.preventDefault()
  }), t("body").scrollspy({
    target: ".navbar-fixed-top",
    offset: 51
  }), t(".navbar-collapse ul li a:not(.dropdown-toggle)").click(function() {
    t(".navbar-toggle:visible").click()
  }), t("#mainNav").affix({
    offset: {
      top: 100
    }
  }), window.sr = ScrollReveal(), sr.reveal(".sr-icons", {
    duration: 600,
    scale: .3,
    distance: "0px"
  }, 200), sr.reveal(".sr-button", {
    duration: 1e3,
    delay: 200
  }), sr.reveal(".sr-contact", {
    duration: 600,
    scale: .3,
    distance: "0px"
  }, 300), t(".popup-gallery").magnificPopup({
    delegate: "a",
    type: "image",
    tLoading: "Loading image #%curr%...",
    mainClass: "mfp-img-mobile",
    gallery: {
      enabled: !0,
      navigateByImgClick: !0,
      preload: [0, 1]
    },
    image: {
      tError: '<a href="%url%">The image #%curr%</a> could not be loaded.'
    }
  })
}(jQuery);

1 个答案:

答案 0 :(得分:0)

似乎您对t(o.attr("href"))的调用与HTML元素不匹配,因此对offset()的调用返回undefined,在尝试访问属性top时产生错误提示。

我正在查看您的HTML代码,并且没有id="page-top"的元素,因此这就是失败的原因。确保您有id="page-top"的元素!