Jquery对象返回undefined

时间:2015-10-30 11:10:29

标签: javascript jquery object

所以,我有一个通过选择器调用的函数

$(window).scroll(function() {
    console.log($("#content div").inview());
});

然而它返回undefined。当我返回$ elems时,它会向我显示所有正确的元素,但是当我返回$ el时它会给出undefined。

$.fn.inview = function() {

    var $elems = this;

    function getViewportHeight() {
        /*do tsoomething that works*/
        return height;
    }

    var vpH = getViewportHeight(),
    scrolltop = (document.documentElement.scrollTop ?
        document.documentElement.scrollTop :
        document.body.scrollTop);

    // return $elems.toArray();
    $elems.each(function () {
        var $el = $(this)
        height = $el.height() - (vpH / 1.5),
        inview = $el.data('inview') || false,
        topofscreen = scrolltop,
        botofscreen = topofscreen + vpH,
        topofelement= $el.offset().top;

        return $el;


};

1 个答案:

答案 0 :(得分:2)

inview没有返回语句,因此始终返回undefined

当您return $el;在匿名函数中执行此操作时,您会转到$elems.each

如果你想从inview返回一些内容,那么你需要在该函数中使用return语句。您可能希望在调用each之前创建一个数组,每次绕过循环时将$el推送到数组上,然后返回数组。