未捕获类型错误:无法读取未定义的属性(读取“左”)

问题描述 投票:0回答:1

我在使用 WordPress 主题时遇到了问题,这似乎很容易解决,但我不知道从哪里开始哈哈。

我的控制台中出现以下错误:

Uncaught TypeError: Cannot read properties of undefined (reading 'left')     at X (main.min.js?ver=6.3.2:1:50679)     at main.min.js?ver=6.3.2:1:58007     at dispatch (jquery.min.js?ver=3.7.0:2:39997)     at v.handle (jquery.min.js?ver=3.7.0:2:37968)

这是有问题的行/代码:

     function X() {
        var t = e("#content").outerWidth()
          , a = (e("#content").offset().left,
        t / 2 - e("#content .page-container").width() / 2)
          , i = function(e, t, i, s) {
            var o = e.find("> .wpb_column > .vc_column-inner");
            t && (o = e.find("> .split-box-container")),
            i && (o = e.find("> .parallax-content")),
            o = s ? o.last() : o.eq(0),
            Clb.isMobile || o.css("padding-" + (s ? "right" : "left"), a + "px")
        }
          , s = function(e, a, i) {
            var s = e.find(a ? "> .split-box-container" : "> .wpb_column > .vc_column-inner > .wpb_wrapper");
            (s = i ? s.last() : s.eq(0)).css({
                position: "",
                left: "",
                width: ""
            }),
            s.length && (i ? s.css("width", t - s.offset().left + "px") : s.css({
                position: "relative",
                left: -s.offset().left + "px",
                width: s.offset().left + s.outerWidth() + "px"
            }),
            Clb.isMobile && s.css({
                width: "",
                left: ""
            }))
        };
        e(".clb-column-padding-left").each(function() {
            i(e(this), e(this).hasClass("split-box"), e(this).hasClass("parallax"), !1)
        }),
        e(".clb-column-padding-right").each(function() {
            i(e(this), e(this).hasClass("split-box"), e(this).hasClass("parallax"), !0)
        }),
        e(".clb-stretch-column-left").each(function() {
            s(e(this), e(this).hasClass("split-box"), !1)
        }),
        e(".clb-stretch-column-right").each(function() {
            s(e(this), e(this).hasClass("split-box"), !0)
        })
    }

知道如何修复它吗?这破坏了我的整个结账:/

我尝试更新我的主题并关闭所有插件,但没有任何帮助,错误仍然存在。

javascript jquery wordpress-theming
1个回答
0
投票

错误是因为

e("#content").offset()
返回 null。

一种解决方案是通过检查

e("#content").offset()
是否存在来求解函数,然后才尝试使用 .left。

e("#content")?.offset()
应该可以解决这个问题,但它可能会产生更多错误,因为您需要检查
a = (e("#content").offset()?.left
中的变量“a”是否也不为空。

由于这是一个 WordPress 错误,最好的解决方案是通过将

id="content"
添加到 div 来使“#content”可见,或者找出为什么 #content 不在页面中。

© www.soinside.com 2019 - 2024. All rights reserved.