概要
これが私のメッセージオブジェクトです。要素ごとに1つのオブジェクトのみを許可したい。コメントに記載されている要素。
ユーザーに表示されるように、要素ごとに1つのメッセージのみが存在する必要があります。たとえば、ユーザーがボタンをクリックし続ける場合、それ以上のメッセージを再インスタンス化したくありません。必要なのは1つだけです。
メッセージの表示が終了するまでボタンを無効にすることもできましたが、それは私がやりたい方法ではありません。
Effects.fade()関数は、約4秒後にメッセージをフェードアウトします。
質問?
これを変更して、要素ごとにそれ自体のインスタンスを1つだけ許可するようにするにはどうすればよいですか?
オブジェクト
/**
* 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' );