这是我正在处理的 jQuery。当我输入正确的 id 等时,该loop()
函数工作得非常好,但是现在我已经将它包装在Slider()
函数中,它被破坏了。我不知道如何解决它。有什么帮助吗?(jsfiddle http://jsfiddle.net/yramagicman/Uc8LW/8/)
$(document).ready(function () {
function Slider(wrapper, kids) {
this.wrapper = wrapper;
this.kids = kids;
this.loop = function(wrapper, kids) {
var count = $(wrapper).children().length,
fade = 1000,
selector = [],
delay = 1000;
console.log(count); //logs 0
for (var i = 1; i < count + 1; i++) {
selector[i] = $(wrapper + ' ' + kids + ':nth-child(' + i + ')');
selector[i].addClass('hidden');
console.log(selector[i]);
}
var z =1;
console.log(selector[z]); //logs undefined
selector[z].each(function () { //uncaught type error
$(this).addClass('visible').fadeIn(fade).delay(delay).fadeOut(fade, function () {
$(this).hide().remove().appendTo(wrapper);
}); //end callback
});
};
$(wrapper).children().addClass('hidden');
//setInterval(loop, 1000); //commented out for debugging. Don't want a loop doing nothing.
loop();
}
Slider('#slider', 'li');
}); // end ready
相关的html
<ul id="slider">
<li> item 1</li>
<li> item 2</li>
<li> item 3</li>
<li> item 4</li>
</ul>
和CSS
.hidden{
position: absolute;
left: -10000px;
top: -10000px;
}
.visible{
position: static;
}