jquery - jQuery/Coffee 脚本中的数据属性

标签 jquery coffeescript

我有以下表单代码:

 <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

我在 Rails 中使用 Coffee 脚本,现在我只是想提醒数据属性 data-color 的值。

这是我的 CoffeeScript

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'

最佳答案

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

jQuery 将 this 分配给触发回调的元素,但它从来不是 jQuery 对象。所以如果你想调用它的 jQuery 方法,你必须包装它。

关于jquery - jQuery/Coffee 脚本中的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492168/

相关文章:

javascript - 在验证时阻止日历控件打开

javascript - jQuery - 通过光标位置隐藏/显示页脚导航

coffeescript - 如何使用 CoffeeScript 创建另一个构造函数?

javascript - 从另一个站点获取 JSON 并转换为数组或 csv

javascript - 我正在使用 ScrollMagic 和 Greensock,但它在滚动时卡住了

javascript - Reactjs 为 render 方法定义变量的最佳策略

javascript - Node-MSSQL 查询事务

javascript - Mocha回调测试省略

jquery - 通过网站将来自网络摄像头的视频保存在用户计算机上

javascript - 无法在 Coffeescript 上的 Rickshaw Graph 上显示月份名称