我得到:Uncaught TypeError:无法读取未定义的属性'each' 在animateIfInview 在atonscroll
并且代码是:
<script>
function animateIfInView() {
$.each($("content-img"), function(key, value) {
if (isElementInViewport($(value))) {
$(value).addClass("content-img-in-view");
} else {
// (Optional) Fade out when out of view
$(value).removeClass("content-img-in-view");
}
});
}
// http://stackoverflow.com/a/7557433/5628
function isElementInViewport(el) {
//special bonus for those using jQuery
if (typeof jQuery === "function" && el instanceof jQuery) {
el = el[0];
}
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <=
(window.innerHeight ||
document.documentElement.clientHeight) /*or $(window).height() */ &&
rect.right <=
(window.innerWidth ||
document.documentElement.clientWidth) /*or $(window).width() */
);
}
</script>
如何修复此错误?我在代码中缺少什么?提前谢谢你们
答案 0 :(得分:0)
我建议如下:
function animateIfInView() {
$(".content-img").each(function(key, elem) {
if (isElementInViewport($(elem))) {
$(elem).toggleClass("content-img-in-view");
}
});
}
类选择器使用$(".className")
,其中代码中缺少.
。此外,如果使用元素,建议使用.each()
与$.each()
,这是建议用于数组和对象。
答案 1 :(得分:0)
jQuery.each(array/object,callback_function);
要求第一个参数作为数组或对象。阅读文档
here。我建议使用var obj = $(document).find(".content-img");
然后使用
如
$.each(obj,function(key,value){
//your code goes here
});