- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
概览
这是我的消息对象。我只希望每个元素允许一个对象。评论中提到的元素。
正如用户所见,每个元素应该只有一条消息。例如,如果用户一直点击一个按钮,我不想重新实例化更多消息。只需要一个。
我本可以做的一件事是禁用按钮,直到消息显示完毕...但这不是我想要的方式。
Effects.fade() 函数在大约 4 秒后淡出消息。
问题?
我如何修改它以使其每个元素只允许一个自身实例?
对象
/**
* Message
*/
var Message = function( element )
{
// need only single instance per element..so a singleton pattern per element
this.element = element; // This is element where the message is sent
};
Message.prototype.messages =
{
name: 'Please enter a valid name',
email: 'Please enter a valid email',
pass: 'Please enter passoword, 6-40 characters',
url: 'Please enter a valid url',
title: 'Please enter a valid title',
tweet: 'Please enter a valid tweet',
empty: 'Please complete all fields',
same: 'Please make emails equal',
taken: 'Sorry, that email is taken',
validate: 'Please contact <a class="d" href="mailto:me@host.com">support</a> to reset your password',
};
Message.prototype.display = function( type )
{
Control.send( this.element, this.messages[ type ] );
var EffectsObject = new Effects( this.element );
EffectsObject.fade( 'down', 4000);
};
对象的使用
this.message_object = new Message( this.response_element );
this.message_object.display( 'empty' );
最佳答案
与现有答案类似,但更符合单例的传统概念:
Message = function(element) {
if (element.hasOwnProperty("messageInstance")) {
return element.messageInstance;
}
element.messageInstance = this;
// Remainder of your constructor logic here
};
这样您就不必在一个集中位置跟踪所有标记的元素,您可以调用 new Message(element)
任意多次,并确保您只会取回一个实例。
编辑:setAttribute
是 Element
上的一个方法专门用于处理 DOM 节点的属性(即 href
标签上的 <a>
或 id
等等)。
相比之下,点表示法或等效的括号表示法 ( element['messageInstance']
) 在任意 JavaScript 对象上设置属性。根据 ( X ) HTML,这两种方法都可行,但由于 messageInstance 在技术上不是合法属性规范,将其分配为对象属性在技术上更正确。
关于javascript - 如何为每个元素实现一个单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050623/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!