2012-02-29 21 views
8

öznitelikleri aşağıdaki formu kodu vardır:Veri jQuery/Kahve komut

<input data-color="orange" id="vote_color_id_2" name="color" type="radio" value="2" />Orange 
<input data-color="blue" id="vote_color_id_3" name="color" type="radio" value="3" />Blue 
<input data-color="green" id="vote_color_id_4" name="color" type="radio" value="4" />Green 

Ben raylar kahve senaryoyu kullanıyorum ve şu anda ben sadece veri data-color öznitelik değerini uyarmak için çalışıyorum.

Bu derlenmiş jQuery şuna benzer benim coffeescript

jQuery -> 
    $("input[name='color']").change -> 
     color = this.data() 
     alert color.color 

geçerli:

(function() { 

    jQuery(function() { 
    return $("input[name='color']").change(function() { 
     var color; 
     color = this.data(); 
     return alert(color.color); 
    }); 
    }); 

}).call(this); 

Ama bu hatayı almaya devam?

Uncaught TypeError: Object #<HTMLInputElement> has no method 'data' 

cevap

24
jQuery -> 
    $("input[name='color']").change -> 
     color = $(this).data() 
     alert color.color 

jQuery geri arama tetikleyen elemana this atar, ama onun asla bir jQuery nesnesi. Bu yüzden jQuery yöntemlerini çağırmak istiyorsanız onu sarmanız gerekir.