2010-11-19 11 views
1

Das Anfügen von Daten an Elemente in jQuery ist einfach:Konflikte zwischen bestehenden/neuen Datenschlüsseln?

$(selector).data(key, value).

Es fiel mir jedoch ein, dass ich alle meine Schlüssel mit meinem Root-Namespace voranstellen möchte. Zum Beispiel:

$(selector).data("MyDotComApp." + key, value)

Ist dies eine Verschwendung von Zeit? Übertreibe ich das? Muss ich mir Sorgen darüber machen, irgendwelche Daten zu überschreiben, die das Core-Framework oder Plugins schreibt?

Gibt es eine Best Practice für die Benennung von Datenschlüsseln?

+0

Ja ich glaube, du es bist Grübeln - nur einen Smart-Key-Namen verwenden, um Ihre Anwendung gilt. Ich würde annehmen, dass jQuery sich darum kümmern würde, ihren Namen etwas voran zu stellen (ein Token, sogar), damit es nicht leicht zu Konflikten kommt. Sie können aber auch immer den jQuery-Quellcode sehen. – psychotik

Antwort

0

Sicher würde nicht weh tun, obwohl Sie es nicht notwendigerweise über die Verkettung aller verschiedenen Schlüssel tun müssen.

Wenn Sie Daten für Ihre spezifische Domäne erstellen möchten, können Sie einfach einen Schlüssel in Daten für das Element mit dem Namen Ihrer Domäne erstellen und diesem ein Objekt zuweisen, das die einzelnen Schlüssel speichern kann.

Beispiel:http://jsfiddle.net/XwJbQ/

// The myDomain key in data references its own object 
$('img').data('myDomain', {}); 

    // then individual keys are added to the object myDomain references 
$('img').data('myDomain').someKey = "some value"; 
$('img').data('myDomain').someOtherKey = "some other value"; 

    // and are retrieved the same way 
alert($('img').data('myDomain').someKey); 
alert($('img').data('myDomain').someOtherKey);