为什么我收到错误,“找不到变量:$(this)”?

时间:2013-12-22 10:19:04

标签: javascript jquery jquery-animate

我买了一本关于网页设计的杂志。在这篇文章中,他们举了一个如何在“一行代码”中制作jQuery幻灯片的例子。 (我似乎用他们的推理,任何压缩的代码都是一行......)

如何......

我试图实现他们的示例,但是我得到一个错误(在控制台中),它找不到变量$(this)。

HTML代码只包含:

<div class="container">
    <ul>
        <li><img src="img/f.png" alt="f"></li>
        <li><img src="img/t.png" alt="t"></li>
        <li><img src="img/moon.png" alt="moon"></li>
    </ul>
</div>

所有img标记的位置相同(彼此重叠)。

img {
    position: absolute;
    top: 100px;
    left: 100px;
}

现在该脚本应该设置动画,更改ul内不同元素的不透明度 (适用于第一个元素动画)。

JSfiddle here...

$(document).ready(function() {

    var t = setInterval(function(){
        $("ul li:last").animate({
            opacity: 0
        }, 1000, function(){
            $("ul li:first").before($this);
            $(this).css({'opacity': 1})
        });
    },5000);

});

如前所述,错误是“无法找到变量:$ this”。控制台指向.before($this)

2 个答案:

答案 0 :(得分:1)

您没有名为$this的变量,您可以使用dom元素引用this来重新定位元素,如

应为$("ul li:first").before(this);

答案 1 :(得分:0)

您需要像这样

创建当前元素的jQuery对象
$("ul li:first").before($(this));

检查this

周围的括号