2009-04-23 4 views
10

jQueryを使用してFF3とIE6/7のブラウザを開発する場合、HTMLタグにカスタム属性を設定する際に互換性の問題はありますか?カスタム属性をデータベースレコードのようにHTML DOMに格納できますか?

まず、私はjQueryのdata()関数を認識しています。これは基本的に私が望むことを実行しますが、データはclone()関数では生き残れません。これは、jQuery UIのドラッグ可能/ドロップ可能なプラグインをドラッグ&ドロップ中にクローンするので、問題です。この質問の目的のために、私はdata()に代わるものが必要です。

ドラッグアンドドロップ操作の間にデータを永続化する必要があります。ドラッグ&ドロップ操作中に移動するDOM要素にデータを挿入できるようにしたい。これを行うために、データベースレコードをシミュレートするHTML子要素を作成できます。簡単な実験では、Firefoxはデータフィールドを保存する属性名を使用する際に問題がないことが示されています。ただし、HTML 4仕様では、特定のタグには特定の属性名しか含めることができません。非標準の属性でDOMを埋め込むと、私が言及したブラウザとの互換性に問題が生じるでしょうか?

答えて

10

私が求めていたこの同様の質問を見てみましょうwhile back:Can I just make up attributes on my HTML tags?

個人的には、すべてのデータをクラス属性に入れるという回答はあまりありません。それはちょっと...あなたが知っている間違っていると感じている?私の経験では、属性を構成するとページが有効ではありませんが、とにかくそれを行います。 4つの主要なブラウザでそれをテストし、それがうまくいくなら誰が気にしますか?

私が考えることができる最も良い解決策は有効でないものです、しかしそれは良いです。そのほかの質問にms2gerによって示唆されるように、カスタムがdata-

http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#embedding-custom-non-visible-data

0

辛抱はハイエンドのスケーラビリティとパフォーマンスを提供しますJavaScriptDBと呼ばれる新しいネイティブオブジェクト・ストレージ・エンジンを搭載http://www.persvr.org/

を見てください

http://ajaxian.com/archives/perseveres-javascriptdb-impressive-json-performance

+0

PersevereはJavaScript以外のコンポーネントを含むサーバー側のライブラリです。ブラウザでは使用できません。 – kpozin

1

不在と属性HTML4でこれを行うには、いくつかの標準的な方法を接頭辞、私はドラッグ可能と店に対応し、隠し要素を作成するために誘惑されるだろうそれに関連するデータ隠された要素の名前をドラッグ可能な要素に相対的にして、情報を簡単に参照できるようにします。次の拡張は、隠しスパンを使用してこれを実装します。注:テストでは、ドラッグ可能なアイテムで問題を再現することはできませんでした。data()はうまくいくようでしたが、UI.Draggableだけでさまざまなプラグインでテストしませんでした。

使用法:

$('#draggableDiv').externalData('key','data'); 
var d = $('#draggableDiv').externalData('key'); 

jQuery.fn.externalData = function(key, data) { 
    var value = this; 
    this.each(function() { 
     var id = this.id+'_external_data'; 
     var elem = jQuery('#'+id+':first'); 
     if (elem.size() == 0) { 
      elem = $('<span style="display: none;" id="' + id + '"></span>"'); 
      elem.appendTo(document.body); 
     } 
     if (data) { 
      elem.data(key,data); 
     } 
     else { 
      value = elem.data(key); 
      return false; 
     } 
    }); 
    return value; 
}; 
1

これは比較的未知であるが有益かなり一顧です:jQuery Metadata Plugin。これは、検索のためにクラス名内にデータを格納することを可能にします。これは検証プラグインで主に使用されますが、実際にはどのシナリオにも適応できます。

あなたが取り組んでいるものは何でも良いことがあります。

関連する問題