Javascript tarafından sağlanan bazı etkileşimi olan bir sayfa yapıyorum. Örnek olarak: makalelerin içeriğini almak ve daha sonra bu verileri bir div içinde görüntülemek için AJAX isteği gönderen bağlantılar. Açıkçası bu örnekte, fazladan bir bilgi saklamak için her bağlantıya ihtiyacım var: makalenin kimliği. Durumda bu şekilde ele aldığım şekilde bu bilgileri href bağlantısına koymak oldu:
<a class="article" href="#5">
Daha sonra a.article elemanlarını bulmak ve uygun olay işleyicisini eklemek için jQuery kullanın. (burada kullanılabilirlik veya anlambilime fazla takılmayın, bu sadece bir örnek)
Her neyse, bu yöntem işe yarıyor, ancak biraz kokuyor ve hiç genişletilemiyor (tıklama işlevinin birden fazla parametresi varsa ne olur? Bu parametrelerden bazıları isteğe bağlıysa ne olur?)
Hemen ortaya çıkan cevap elemanda nitelikleri kullanmaktı. Demek istediğim, bu onlar için, değil mi? (Türü).
<a articleid="5" href="link/for/non-js-users.html">
Gelen benim son soru bu yöntem geçerli olup olmadığını sordum ve o zaman hayır, geçerli veya güvenilir değil, (I do not) benim kendi DTD tanımlanması da eteğine çıkıyor. Yaygın bir yanıt, verileri class
özniteliğe koymaktı (bu, kötü seçilmiş örneğimden kaynaklanmış olsa da), ama bana göre, bu daha da kokuyor. Evet, teknik olarak geçerli, ancak harika bir çözüm değil.
Geçmişte kullandığım başka bir yöntem aslında bazı JS oluşturmak ve bunu bir <script>
etiketteki sayfaya eklemek ve nesneyle ilişkilendirilecek bir yapı oluşturmaktı.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Ancak bu popodaki gerçek bir acı olabilir ve genellikle çok dağınıktır.
Peki, soruya ulaşmak için, HTML etiketleri için rasgele bilgi parçalarını nasıl saklıyorsunuz ?