少し背景
フィールドをループし、ドロップダウン、オートコンプリート、テキストなどに応じてフィールドを設定するメソッドをjavascript/jQueryで作成しました...
この理由は、入力とテキストエリアを特別にスタイル設定しており、ページがロードされたら JavaScript で初期化する必要があるためです。このクラスのメソッドは、ページの各フィールドをループし、その内容に基づいてイベントを設定します。
現時点では、フィールドコンテナにクラスを与えることで各フィールドが何であるかを検出しています.jQueryはこのクラスを読み取り、それに応じてフィールドを次のように設定します:
<div id="company-container" class="autocomplete autocomplete-215 form-sprite">
<input type="text" class="field" name="company" id="company" autocomplete="off" maxlength="80" tabindex="1" />
<div class="label overflow" id="company-label">Company</div>
<div class="glow form-sprite" id="company-glow"></div>
<ul class="subNav"></ul>
</div>
jQuery は次のようになります。
$(options.fields).each(function(){
// Set the field events
SineMacula.setBlur($(this));
SineMacula.setFocus($(this));
SineMacula.toggleLabel($(this));
// If the field is a drop down then set it
if($(this).parent().hasClass('dropdown')){
SineMacula.setDropdown($(this).parent());
}
// If the field is a checkbox then set it
if($(this).parent().hasClass('checkbox')){
SineMacula.setCheckbox($(this).parent());
}
// and so on ...
});
上記のコードのほとんどは無視できますが、私が何をしているのかがわかるはずです...
質問
私は最近、HTML5 属性data-*
に気付きました*
。私の質問は次のとおりです。
- クラスの代わりにHTML5
data-*
属性を使用する必要がありますか? data-*
属性またはクラスよりも優れた方法はありますか?data-*
属性は HTML5 ですが、正しくDOCTYPE
定義されていれば初期のブラウザと互換性がありますか?