jQuery - 在filter()中获取此元素

时间:2017-08-24 13:16:18

标签: jquery filter

使用benpickles onSCreen插件(https://benpickles.github.io/onScreen/)我正在使用以下代码尝试使用jQuery的filter()方法在任何可见的图像上更改所有元素的图像src在屏幕上。

<img class="img-d" src="old-image-23.jpg" data-src="new-image-37.jpg"/>
<img class="img-d" src="old-image-54.jpg" data-src="new-image-7.jpg"/>
<img class="img-d" src="old-image-12.jpg" data-src="new-image-98.jpg"/>


jQuery(function() {
  setInterval(function() {
    jQuery('.img-d')
        .filter(":onScreen")
        .attr('src', jQuery(this).data('src'))
  }, 
  1000)
});

但是当我尝试更改img src时,jQuery(this)无效。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以将attr()与回调一起使用来访问每个元素并返回数据属性值

jQuery(function($) {
  setInterval(function() {
    $('.img-d').filter(":onScreen").attr('src', function() {
        return $(this).data('src');
    });
  }, 1000)
});

请注意该功能如何关闭$,因此您不必每次都输入jQuery
为什么你会每一秒都这样做,但是超出我的范围呢?