2011-05-22 21 views
5

Tek bir bağlantıdan çok fazla veri iletmenin en iyi yolu nedir? Böyle bir şey iyi bir fikir mi yoksa daha iyi bir yolu var mı?Tek bir bağlantı etiketinden çok sayıda veri geçirin

<a href="{ 'id':'1', 'foo':'bar', 'something':'else' }" id="myLnk" > Click </a> 


$('#myLnk).click(function(event){ 
    event.preventDeafult(); 
    var data = $(this).attr('href') 
    console.log($.parseJSON(response)); 

}) 

Teşekkürler!

<a href="#" id="myLnk" data-id="1" data-foo="bar" data-something="else">Click</a> 
+0

Mümkün olan en iyi cevabı almak için bize biraz daha içerik verebilir misiniz? Bu kodun etrafında neler olduğunu, nasıl işlediğimi ve ne için kullanıldığını açıklayın. – rzetterberg

+0

@Ancide, bu sadece genel bir soru. Gerçekten belirli bir şey yapmaya çalışmıyorum. Sadece en iyi uygulamanın ne olduğunu merak ediyorum. – Pardoner

+0

Pekala, neden merak ediyorum, çünkü bu durumda bağlamın ne olduğuna bağlı olarak farklı cevaplar var. Hangi bağlamda daha iyi çalışır. – rzetterberg

cevap

13

Bunu yapmanın en iyi yolu, bağlantı etiketinde custom data attributes kullanmak muhtemelen:

+1

Teşekkürler Chris (ve html5), tam olarak aradığım şey bu. – Pardoner

+0

Chris, $ .data() için notlarıma bakın ... Aslında bunu kendim buldum. –

+0

Verileri başka bir sayfaya göndermenin bir yolu var mı? ya da bu veriler aynı sayfada sadece görüntüleniyor mu? – danyo

1

önerilen yol HTML5 data-* özelliklerini kullanmaktır. Örneğin

: Daha sonra kolayca jQuery data() işlevini kullanarak JavaScript bu verilere erişebilir

<a href="#" data-json="{ 'id':'1', 'foo':'bar', 'something':'else' }">Click</a> 

.

Veya yerine tek JSON bloğunda bir araya tüm verileri donatılacak yerine, ayrı nitelikler içine ayırabilirsiniz:

$("#myLnk").data("id") 
$("#myLnk").data("foo") 
$("#myLnk").data("something") 
0
:

<a id="myLnk" 
    data-id="1" 
    data-foo="bar" 
    data-something="else"> 

Bunlar daha sonra böyle jQuery kullanılarak alınabilir

Chris'in & MvChr yanıtlarını eklemek için, numaralı numaralı öznitelikler için tek tırnak işaretleri kullanmama rağmen bunu da yapabilirsiniz:

<a href='#' data-json='{ "id":1, "foo":"bar", "something":"else" }'>Click</a> 

Bu sözdiziminin nedeni, düzgün bir şekilde alıntı yaparsanız, jQuery öğesinde $ .data otomatik olarak çalışacaktır. Aksi takdirde, $ .parseJSON ($. Data (selector)) bilgisine sahip olmanız gerekir.

İlgili konular