0

私は Javascript/jQuery のヘビー ユーザーではありませんが、ギャラリー ビューアー、アラート アニメーション、ポップアップ フォームなど、独自の UI を作成することに本格的に取り組み始めました。

しかし、必要なときにデータをまとめるための最良の方法は何でしょうか?

例: ギャラリー ビューアーを使用して、Lightbox と同じように、rel=viewer を持つアンカーの href を取り込みます。

<a href="url" rel=viewer" />
<a href="url" rel=viewer" />

次に、管理者ユーザーがこれらの画像を削除できるようにこれを拡張しましたが、これを行うにはメディア ID を渡す必要がありました。だから私は追加しました...

<a href="url" rel=viewer" viewerid="123" />
<a href="url" rel=viewer" viewerid="456" />

自分の持っているものを忘れてしまうので、自分の属性を作成するという考えは好きではありません。しかし、アンカー内に javascript オブジェクト/データの配列を格納することは可能ですか? 何かのようなもの...

<a href="url" rel=viewer" data="{'id':'123', 'foo':'bar'}" />

その後...

var photos = new Array();
$('a[rel=viewer]').each(function(){
    photos.push(  new Array( $(this).attr('data') )  );
});

私に何かを与えるために

photos[0] = array('id' => 123, 'foo' => 'bar')
photos[1] = array('id' => 456, 'foo' => 'bar')
4

5 に答える 5

4

JQueryデータ関数は、必要なもののように思えます。

于 2012-08-31T12:21:08.380 に答える
2

タグ内のデータに名前を付ける必要があることはわかっていますか?有効な構文は

<a href="url" rel=viewer" data-array="{'id':'123', 'foo':'bar'}" />

後で次のように読むことができます。

$('a').data('array')
于 2012-08-31T12:24:18.650 に答える
2

これを試してくださいjQuery.data

jQuery.data(document.body, 'foo', 52);
jQuery.data(document.body, 'bar', 'test');
于 2012-08-31T12:22:25.700 に答える
0

簡単にするために、HTML5で完全に有効なカスタムデータ属性を使用します。

より深いアプローチが必要な場合は、DOM /jQuery.dataからデータを分離し、アプリケーションで適切なモデルレイヤーを使用することをお勧めします[ Backbone.jsについて考えてください]。 。

于 2012-08-31T12:27:11.600 に答える
0

私が見つけた最良の方法は、HTML5 データ属性と jQuery を使用することです。

JSON を使用してオブジェクトを文字列化し、データが必要なときにオブジェクトに戻す例を次に示します。

var obj = 
{
  type: "something",
  id: 3,
  src: "somesrc"    
}

var data = JSON.stringify(obj);
$('a').attr('data-object', data);

var returned = $('a').attr('data-object');
returned = $.parseJSON(returned);
console.log(returned);

</p>

于 2012-08-31T12:29:46.060 に答える