我买了一本关于网页设计的杂志。在这篇文章中,他们举了一个如何在“一行代码”中制作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
内不同元素的不透明度
(适用于第一个元素动画)。
$(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)
。
答案 0 :(得分:1)
您没有名为$this
的变量,您可以使用dom元素引用this
来重新定位元素,如
应为$("ul li:first").before(this);
答案 1 :(得分:0)
您需要像这样
创建当前元素的jQuery对象$("ul li:first").before($(this));
检查this