Javascript 在我的案例中,使用js滚动到元素失败

Javascript 在我的案例中,使用js滚动到元素失败,javascript,jquery,Javascript,Jquery,我收到此错误未捕获引用错误:未定义highlightedBlock $(this).parents('.type-coupon').addClass('highlightedBlock'); function findPos(obj) { var curtop = 0; if (obj.offsetParent) { do {

我收到此错误
未捕获引用错误:未定义highlightedBlock

$(this).parents('.type-coupon').addClass('highlightedBlock');

            function findPos(obj) {
                    var curtop = 0;
                    if (obj.offsetParent) {
                        do {
                            curtop += obj.offsetTop;
                        } while (obj = obj.offsetParent);
                    return [curtop];
                    }
                }

            //Scroll to location of highlightedBlock on load
            window.scroll(0,findPos(highlightedBlock));

如果说上面的块在事件中,我如何确保定义了
highlightedBlock
?findPos的功能是将窗口的屏幕滚动到一个元素,但我不能硬编码highlightedBlock类。有什么想法吗?

你不能检查一下这种类型的类是否存在。。例如:

if($('.'+className).length >0)
{
 window.scroll(0,findPos(className));
}

我希望我解决了您的问题…

您可以创建一个局部变量,并尝试将
高亮显示块的值分配给它,当变量不存在时,返回到
false

var highlightedBlock = highlightedBlock || false;
然后,在拨打电话之前,您可以将其传递到
if
语句中:

if (highlightedBlock)
    window.scroll(0,findPos(highlightedBlock));

没用,我试过了。我认为这是因为findpo与addClass同时运行。