2012-02-29 9 views
8

tengo el siguiente código de formulario:atributos de datos en escritura jQuery/café

<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 

estoy usando la escritura del café en los carriles y en este momento sólo estoy tratando de alertar al valor de los datos de atributos data-color.

Esta es mi coffeescript

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

El jQuery compilado se ve así:

(function() { 

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

}).call(this); 

Pero me siguen dando este error?

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

Respuesta

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

jQuery asigna this al elemento que desencadena la devolución de llamada, pero nunca es un objeto jQuery. Entonces debe envolverlo si desea llamar a los métodos de jQuery.

Cuestiones relacionadas