Javascript Jquery对象返回未定义的
我有一个通过选择器调用的函数Javascript Jquery对象返回未定义的,javascript,jquery,object,Javascript,Jquery,Object,我有一个通过选择器调用的函数 $(window).scroll(function() { console.log($("#content div").inview()); }); 但是,它返回未定义的。当我返回$elems时,它会显示所有正确的元素,但当我返回$el时,它会给出未定义的元素 $.fn.inview = function() { var $elems = this; function getViewportHeight() { /*do
$(window).scroll(function() {
console.log($("#content div").inview());
});
但是,它返回未定义的。当我返回$elems时,它会显示所有正确的元素,但当我返回$el时,它会给出未定义的元素
$.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;
};
inview
没有return语句,因此它总是返回undefined
当您返回$el
您正在传递给$elems的匿名函数中执行此操作。每个
如果要从inview
返回某些内容,则需要在该函数中使用return语句。可能您想在调用each
之前创建一个数组,每次循环时将$el
推到数组上,然后返回数组。可能重复的返回$elems.each(…)代码>来自$.fn.inview()