我正在尝试使用jquery从元素中获取唯一值,当我滚动到屏幕上的某个位置时,该值应该会出现。当元素出现在屏幕上时,postId 15应该可以到达jquery代码。
这是我的代码:
$(document).scroll(function() {
if($("p.viewedPost").is(':onScreen')) {
var postId = $(this).attr("postId");
console.log("Element appeared on Screen " + postId);
}
else {
console.log("Element not on Screen");
//do all your stuffs here when element is not visible.
}
});
问题是我有多个postId,所以我不能使用$("p.viewedPost").attr("postId");
它必须为$(this).attr("postId");
但是当我使用“ this”时,postId似乎是未定义的。那么我如何才能使$("p.viewedPost").is(':onScreen')
拥有this
?
谢谢。
答案 0 :(得分:0)
您正在寻找.filter()
和.each()
:
$("p.viewedPost").filter(':onScreen').each(function () {
var postId = $(this).attr("postId");
console.log("Element appeared on Screen " + postId);
});
如果您插件的:onScreen
选择器不能与.filter
一起使用,则可以将测试放入each
回调中:
$("p.viewedPost").each(function () {
if (!$(this).is(':onScreen')) return; // skip
var postId = $(this).attr("postId");
console.log("Element appeared on Screen " + postId);
});