JS中有点单例
Kinda singleton in JS
我想确保如果一个#offer img触发了一个附加到事件处理程序的函数,那么没有其他#offer img触发另一个函数,直到第一个函数完成它的工作。我发现我需要Singleton来做这个。下面是我尝试做的:
$(document).ready(function () {
var inProgress = false;
$('#offer img').mouseover(function (event) {
if (!inProgress) {
inProgress = true;
$('#offer div img').addClass('gray');
$(event.target).removeClass('gray');
var clickedId = event.target.id;
var textId = '#' + clickedId.substr(0, clickedId.search('_'));
$('.innerContent p:visible').fadeOut(300, function () {
$(textId).fadeIn();
});
inProgress = false;
} else {
return;
}
});
});
不工作。这段代码有什么问题?任何帮助,感谢:)
问题是在所有的fadeIn和fadeOut函数完成解析之前,inProgress立即被设置为False。你的mouseOver功能完成了,但是fadeIn和fadeOut还没有。
如果你想让inProgress在渐变完成之前不被设置,比如
$('.innerContent p:visible').fadeOut(300, function () {
$(textId).fadeIn(300, function(){
inProgress = false;
});
});
} else {
return;
}
相关文章:
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- 表单使用js、html,而不是隐藏字段
- 和兼容的单例骨干模型
- 有状态单例模块
- 在什么情况下我们需要在javsacript中实现单例类
- 带有远程 => true 的 Rails 表单提交 -- JS 文件呈现但不执行
- 如何将一个单例传递给另一个对象,使该对象的所有实例都引用同一个单实例
- 使用Ext.Ajax.request使ExtJS单例返回对象
- 原始值被称为单例的现象是什么?
- AngularJS 模式单例在服务中未更新视图
- web2py 表单在 js 中读取值
- 创建命名空间 Javascript 单例类的对象
- 流星.js单例确认框
- ES2015 单例或服务提供商或模块,用于敲除.js组件
- 单例在JS/coffeescript中引用自身的优雅方式
- 如何解决node.js中的模块缓存警告(单例问题)
- Node.js插件单例
- JS中有点单例
- 骨干.js单例收藏
- js单例没有返回正确的实例