javascript - $(this) 在 if ($ (".element").is() 内不起作用

标签 javascript jquery

我对下面代码的预期结果是 .csr-area-3 .csr-video 并添加了类 csr-animate csr-zoom-in,为什么 $(this) 在这种情况下不起作用?

if ($(".csr-area-3 .csr-video").is(":in-viewport")) {
    $(this).addClass('csr-animate csr-zoom-in');
}

最佳答案

因为上下文是调用者函数/事件或者可能是全局窗口上下文,所以再次使用相同的选择器来添加类:

if ($(".csr-area-3 .csr-video").is(":in-viewport")) {
    $(".csr-area-3 .csr-video").addClass('csr-animate csr-zoom-in');
}
<小时/>

根据评论进行编辑

使用变量来存储 jquery 查找的结果:

var csrvideo = $(".csr-area-3 .csr-video");
if (csrvideo.is(":in-viewport")) {
    csrvideo.addClass('csr-animate csr-zoom-in');
}

注意:使用过滤器作为 @saptal 的答案将确保在存在多个元素的情况下将类添加到视口(viewport)内的元素。

关于javascript - $(this) 在 if ($ (".element").is() 内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40400723/

相关文章:

javascript - 如何通过单击元素外部来关闭元素?

javascript - 如何在 extendscript 中将新元素添加到现有 XML 文件中?

javascript - 单独触摸和滚动 mootools 拖动

javascript - 如何使用 jquery 替换或删除字符串中的 [number]

javascript - 比较两个元素在 body 中的位置

javascript - 为 Magento 缩小 CSS 和 JS

javascript - 如何使用来自 Firestore 的数据在 React 中创建一组唯一字段值?

jquery - 使用 Foundation 隐藏圆形按钮组中的按钮

javascript - jQuery 鼠标离开延迟

javascript - 由于目标被视为被动,因此无法阻止被动事件监听器内的默认设置 - Chrome