Javascript jQuery插件工作不正常
我正在开发一个名为“popup”(Javascript jQuery插件工作不正常,javascript,jquery,css,jquery-plugins,Javascript,Jquery,Css,Jquery Plugins,我正在开发一个名为“popup”($(.messageBox”).popup()的插件 以下是我的部分代码: $(this).fadeIn(settings.fadeDuration); console.log($(this).attr("class")); console.log(settings.timeOut); setTimeout( function(){ console.log($(this).attr("class"));
$(.messageBox”).popup()的插件
以下是我的部分代码:
$(this).fadeIn(settings.fadeDuration);
console.log($(this).attr("class"));
console.log(settings.timeOut);
setTimeout( function(){
console.log($(this).attr("class"));
$(this).fadeOut(settings.fadeDuration);
}, settings.timeOut);
这是popup.min.js
中的代码,下面是index.html
中的代码:
$(function(){
$(".messageBox").popup();
});
我的弹出窗口出现,并正确淡入,但在1000ms后不会像应该的那样淡出。。。我能做什么?我打开了控制台,但没有显示任何错误。因为此
引用在设置超时
回调方法中是错误的
您可以使用闭包变量来保存引用
$(this).fadeIn(settings.fadeDuration);
console.log($(this).attr("class"));
console.log(settings.timeOut);
var el = this;
setTimeout( function(){
console.log($(el).attr("class"));
$(el).fadeOut(settings.fadeDuration);
}, settings.timeOut);
或用于将自定义上下文传递给回调
$(this).fadeIn(settings.fadeDuration);
console.log($(this).attr("class"));
console.log(settings.timeOut);
setTimeout($.proxy(function(){
console.log($(this).attr("class"));
$(this).fadeOut(settings.fadeDuration);
}, this), settings.timeOut);
写入控制台时,设置超时是什么?