javascript - 背景图片不会改变

标签 javascript jquery html css

我想在 setInvterval 中更改 div 的背景图像,但不知道如何做。这是代码:

$('.thumbnail').on({
        'mouseenter': function(){
            var thumbs = $(this).attr('data-num-thumbs');
            var thumb_url = $(this).css('background-image');
            console.log(thumb_url);
            var i = 1;
            setInterval(function(){
                var new_thumb_url = thumb_url.replace(/\d{1,2}\.jpg/gi, i + '.jpg');
                console.log(new_thumb_url);
                $(this).css('background-image', new_thumb_url);
                i++;
                if(i > 10) i = 1;
            }, 3000);
        });
});

这是 div 的样子:

<div data-num-thumbs="17" class="thumbnail" style="background: url('http://site/img/11.jpg') no-repeat;"></div>

最佳答案

看起来 setInterval() 中的 $(this) 正在映射到其他东西,试试这个

$('.thumbnail').on({
    'mouseenter': function(){
        $this=$(this);  //store $(this) in a local var
        var thumbs = $(this).attr('data-num-thumbs');
        var thumb_url = $(this).css('background-image');
        console.log(thumb_url);
        var i = 1;
        setInterval(function(){
            var new_thumb_url = thumb_url.replace(/\d{1,2}\.jpg/gi, i + '.jpg');
            console.log(new_thumb_url);
            //$(this).css('background-image', new_thumb_url);
            $this.css('background-image', new_thumb_url);
            i++;
            if(i > 10) i = 1;
        }, 3000);
    }
});

快乐编码:)

关于javascript - 背景图片不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853465/

相关文章:

javascript - 输入 key 表单提交因 HTML5 日期输入而失败

javascript - jQuery自动将div滚动到底部

javascript - jQuery 在 innerHTML 声明之前设置闪烁文本

javascript - 防止多次执行JS函数/表单提交

javascript - 禁用可排序选项

javascript - MongoDB 通过 findOne 连接集合

Javascript/Jquery 总和计算不正确

javascript - 在图像 css 的右上角显示带有黑色覆盖的图标

javascript - 如何使用 Javascript 在由连字符分隔的两个数字的开头追加

javascript - 带有 javascript 的响应式 HTML 文本框