setInterval一直给我未定义的函数
setInterval keeps giving me undefined function
在我的代码中有这个函数,它作为类中的元素的滑动条。
我想要setInterval
到它的点击事件,但一直给我的功能是未定义的。
$(document).ready(function(){
$(".slide").click(
setInterval( function fadeNext() {
$(this).children('div:nth(0)').children('img:nth(0)').fadeOut().appendTo($(this).children("div:nth(1)"));
$(this).children("div:nth(1)").children('img:nth(0)').fadeIn().appendTo($(this).children("div:nth(0)"));
},1000)
);
});
在setInterval函数中,this
属于匿名函数,不属于点击函数。所以你需要在间隔时间内通过this
。解决方案是在匿名函数
$(document).ready(function () {
$(".slide").click(function(){
setInterval(function fadeNext() {
$(this).children('div:nth(0)').children('img:nth(0)').fadeOut().appendTo($(this).children("div:nth(1)"));
$(this).children("div:nth(1)").children('img:nth(0)').fadeIn().appendTo($(this).children("div:nth(0)"));
}.bind(this), 1000)
)
});
});
或者只是
$(document).ready(function () {
$(".slide").click(function(){
var _this = this;
setInterval(function fadeNext() {
$(_this).children('div:nth(0)').children('img:nth(0)').fadeOut().appendTo($(this).children("div:nth(1)"));
$(_this).children("div:nth(1)").children('img:nth(0)').fadeIn().appendTo($(this).children("div:nth(0)"));
}, 1000)
)
});
});
可以尝试使用jQuery延迟和fadeOut回调。我自己没有测试过。
$(document).ready(function(){
$(".slide").click(function () {
$(this)
.children('div:nth(0)')
.children('img:nth(0)')
.delay(1000);
.fadeOut(400, function(){
$(this).appendTo($(this).children("div:nth(1)"));
});
});
});
相关文章:
- 现有函数未定义
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- AngularJS ng repeat显示原型函数未定义
- jQuery onclick 函数:未定义不是一个函数
- 函数未定义
- 为什么在jsfiddle中显示ReferenceError:函数未定义
- 函数未定义,实际定义时为
- 函数未定义的Javascript(Basic)
- ajax函数未定义
- 为什么window.onload函数未定义
- 模块模式:函数未定义
- 包含的javascript源代码通过PHP,onmousemove事件,函数未定义
- 单击链接时出现函数未定义错误
- AngularJS和Angular Snap:SSnap构造函数未定义
- 在Node.js中,从同一文件中的另一个函数引用一个函数会导致'ReferenceError:-函数-未定义
- symfony trick javascript函数未定义
- 不断获取JS函数未定义错误
- AngularJS HTTP 资源 - 响应函数未定义
- 函数未定义,参数格式
- JavaScript 中的函数未定义