未捕获的TypeError:无法读取函数中未定义的属性“left”

时间:2018-06-18 14:52:13

标签: jquery

我有以下可行的代码

$('#btnSort').on("click",
        function () {
            $("#sortorder").css({
                'position': 'absolute',
                'z-index': '99',
                'left': $(this).offset().right,
                'top': $(this).offset().top + $(this).height() + 5
            }).slideToggle().delay(1000);
        });

我正在尝试检测浏览器窗口的大小,因此已将代码放入函数中,但我现在收到错误:

  

未捕获的TypeError:无法读取未定义的属性“left”

以下是我的功能

var width = $(window).width();
    $.fn.positionFunction = function () {
        if (width < 500) {
            $("#styleList").css({
                'position': 'absolute',
                'z-index': '99',
                'left': $(this).offset().right,
                'top': $(this).offset().top + $(this).height() + 5
            }).slideToggle(1000);

        } else {
            $("#styleList").css({
                'position': 'absolute',
                'z-index': '99',
                'left': $(this).offset().left, <----------Error
                'top': $(this).offset().top + $(this).height() + 5
            }).slideToggle(1000);
        }
    }

我试图用以下方法调用它:

$('#btnStyle').on("click", function() {
        $.fn.positionFunction();
    });

任何人都可以看到我做错了吗

1 个答案:

答案 0 :(得分:0)

您是否尝试过在所有情况下交换$(&#39;#styleList&#39;)?