【问题标题】:Jquery object returns undefinedJquery 对象返回未定义
【发布时间】:2016-01-30 19:08:59
【问题描述】:

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

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

但是它返回未定义。当我返回 $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;


};

【问题讨论】:

标签: javascript jquery object


【解决方案1】:

inview 没有返回语句,所以它总是返回undefined

当您return $el; 时,您是在传递给$elems.each 的匿名函数中执行此操作

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2015-02-13
    相关资源
    最近更新 更多