尝试使用索引在<li>
数组上调用.fadeOut()会返回dom元素,而不是jQuery对象。我曾经偶然发现过这个问题,但似乎无法记住为什么会发生这种情况,任何帮助都会受到赞赏。
$(document).ready(function(){
var currentSlide = 0,
slides = $('#homeSlider ul li'),
slideLength = slides.length;
var slideInterval = setInterval(function(){
if(currentSlide >= slideLength-1) {
currentSlide = 0;
} else {
currentSlide++;
}
slides[currentSlide].fadeOut(); /* <-- undefined is not a function */
}, 2000); // end slide setInterval
});// end doc ready
答案 0 :(得分:0)
您正在尝试在DOM节点上使用jQuery方法(jQuery对象的函数)。可以预见,这不会,不能工作。要在这种情况下使用jQuery方法,您可以重新包装DOM节点:
$(slides[currentSlide]).fadeOut();
或者使用eq()
来有效地将jQuery对象修剪为仅提供索引处的那个(仍然包裹的)节点:
slides.eq(currentSlide).fadeOut();
使用slides[currentSlide]
返回DOM节点的原因是因为jQuery伪装成数组,因此提供数字索引会返回存储在该索引处的元素。