Атрибуты данных в скрипте jQuery / Coffee - PullRequest
8 голосов
/ 29 февраля 2012

У меня есть следующий код формы:

 <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

Я использую скрипт Coffee в рельсах и сейчас пытаюсь предупредить значение атрибута данных data-color.

Это мой кофейный сценарий

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

Скомпилированный jQuery выглядит так:

(function() {

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

}).call(this);

Но я продолжаю получать эту ошибку?

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

1 Ответ

25 голосов
/ 29 февраля 2012
jQuery ->
    $("input[name='color']").change ->
        color = $(this).data()
        alert color.color

jQuery назначает this элементу, который вызвал обратный вызов, но никогда не является объектом jQuery. Поэтому вам нужно обернуть его, если вы хотите вызвать для него методы jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...