为什么这段代码不起作用?
我写了这段代码但是:
(function($){
$.fn.newsSlider = function() {
setTimeout(function() {
this.each( function() {
$(this).each(function(){
$(this).append($(this).children(":first-child").clone());
$(this).children(":first-child").remove();
});
});
}, 3000);
}
}(jQuery的));
使用setInterval:
http://jsfiddle.net/OmidJackson/46UNg/
没有setInterval:
http://jsfiddle.net/OmidJackson/6bKWU/
答案 0 :(得分:0)
你的问题是this
在setTimeout函数文字中有不同的含义(窗口对象)。请查看this answer以获取有关不同背景下this
的更多信息。
解决方案是保存对this
的引用,以便您可以在setTimeout中使用它
请参阅this example。
答案 1 :(得分:0)
您需要存储this
,因为它目前的值为window
var $this = this;
setTimeout(function() {
$this.each( function() {
$(this).each(function(){
$(this).append($(this).children(":first-child").clone());
$(this).children(":first-child").remove();
});
});
}, 3000);