2009-04-02 11 views
4

私は私のウェブサイト用のウィンドウアプリケーションに取り組んでいます。今、私は個々のウィンドウをサイトの本体に設定しています。私は文字通りbody要素の最後に適切なコードを追加して新しいウィンドウを追加し、そのdivを削除して削除します。 (私は基礎をなすJavaScriptアーキテクチャのためにjQueryを使用しています)。独自のCSS属性を作成することは合法ですか?

私は各ウィンドウに対して、直接使用されない値をいくつか保存できるようにしたいと考えています。私がウィンドウを最大化すると、古い位置とサイズを保存して、最大化を無効にすると、それは元の位置に戻り、ランダムな場所に戻らないようにします。だから私の本当の疑問は、divごとにこのような情報を保持する唯一の目的でカスタムCSS属性を作成すること(ブラウザがそれらを無視することを十分に知っている)でしょうか?あるいはこれは違法でしょうか?別の選択肢を見なければなりませんか?

私は確かにによく似ています。このシステムをブラインドで実行できるように、このすべてをアレイに保持する方法がありますが、それは素敵でエラーやものになりがちです。と。

おかげ

+0

あなたは、CSS属性ではなくJavascript属性(プロパティ)を意味するような音が... .... –

+0

おそらく。確かに、私は$( "。window")のようなことをするためにjQueryを使うことを指していました。css( "my-property"、value);最も確実にそれを行うためのより良い方法があります。 –

答えて

7

jQueryには、dataと呼ばれるこれまで知られていない機能があります。これを使うと、これを行うことができます。

$('#mydiv').data('position', {x: 150, y: 300}); 

// later 
var position = $('#mydiv').data('position'); 

(私はそれが非常に便利見つけるが)あなたがこれを好きではない場合、確かにカスタム属性を持っていることが間違っていない、これはそれ無効なコードになりますが。

+0

domのデータの大量使用が非常に遅くなることに注意してください。可能であれば、他のアプローチを見たいかもしれません – roberthuttinger

8

は私の代わりに一時データを格納するためjQueryのdata()メソッドを使用します。

$('div#window').data('position', { x: 100, y: 200, width: 50, height: 50}); 
$('div#window').data('state', 'minimized'); 

参考

ます。また、サーバ側でクッキーやセッションに格納することによって、このデータを永続化し、それを復元することができますページが読み込まれるときのクライアント。こうすることで、ユーザーがページを再読み込みしてもウィンドウの位置と状態が保持されます。

+0

私が必要としていたのとまったく同じですが、できれば私もあなたも受け入れますが、私はできないので、私はちょうどアップアップします。ありがとう!^_^ –

関連する問題