JQuery 为什么 .offset() 不是 return 值?

JQuery why does .offset() not return value?

您好,我的浏览器检查器出现 JS 错误。但我不明白我的 Jquery 代码有什么问题。为什么他认为这个变量是未定义的...有人可以帮我吗?

代码运行良好;但我更愿意删除错误: 未捕获类型错误:varposlist 未定义

这是我的js代码:

 $(function(){
var pane = $('.scroll-pane');
pane.jScrollPane({
    });
var api = pane.data('jsp');

    if(typeof localStorage!='undefined') {
        //Get var from local storage
        var menu = sessionStorage.getItem("menu");
        var yposistock_rule = sessionStorage.getItem("yposistock_rule");
        

        //Check menu view mode
        if(menu == "arbo") {
            // defined top from a#on anchor
            var varposchapter = $('a#on_menuchapter').offset();
            //add - 285 to put at same level than title
            var vartop1 = varposchapter.top -285 -yposistock_rule;
            if(scrollauto_rule == "oui") {
                sessionStorage.removeItem("yposistock_rule");
            };
            api.scrollTo(0, vartop1);
            return false;
             
        }
        else{   
            // defined top from a#on anchor
            var varposlist = $('a#on_menulist').offset();
            //add - 285 to put at same level than title
            var vartop2 = varposlist.top -285 -yposistock_rule;
            if(scrollauto_rule == "oui") {
                sessionStorage.removeItem("yposistock_rule");
            };
            api.scrollTo(0, vartop2);
            return false;
        }
    }
});

有什么想法吗?非常感谢。

我唯一能想到的就是这一行:

$('a#on_menulist').offset();

#选择具有相同ID的元素。除非你有一个 id=on_menulist 的元素,否则这段代码找不到 id,也就找不到偏移量。