【问题标题】:Coffeescript jQuery set data()Coffeescript jQuery 设置数据()
【发布时间】:2012-01-04 10:07:05
【问题描述】:

我做错了什么?我正在尝试将.data() 分配给每个锚点。现在,该脚本只删除了标题,但没有在 data() 中存储任何内容。当我尝试console.log(title) 时,它写的标题很好,但仍然没有存储它。我正在使用 jQuery 1.7.1

我在咖啡中有以下几行

$(document).ready ->
    initBubble();

initBubble = ->
    $('a[title]').each (index, element) => 
        setInfoAttr($(element))

setInfoAttr = (element) ->
    title = element.attr('title')
    element.data('info', title).removeAttr('title')

编译后的输出如下

(function() {
  var initBubble, setInfoAttr;

  $(document).ready(function() {
    return initBubble();
  });

  initBubble = function() {
    var _this = this;
    return $('a[title]').each(function(index, element) {
      return setInfoAttr($(element));
    });
  };

  setInfoAttr = function(element) {
    var title;
    title = element.attr('title');
    return element.data('info', title).removeAttr('title');
  };

}).call(this);

【问题讨论】:

  • 看起来应该可以正常工作...您如何测试以确保设置数据?
  • 我试过console.log。显然,由于函数的顺序(这很奇怪),它不起作用。还是谢谢!

标签: javascript jquery coffeescript


【解决方案1】:

也许可以稍微调整一下。我唯一能看到的是 initBubble 函数在被调用时可能是未定义的。

initBubble = ->
    $('a[title]').each (index, element) => 
        setInfoAttr $(element)

setInfoAttr = (element) ->
    title = element.attr('title')
    element.data('info', title).removeAttr('title')

// A little shorcut for $(document).ready
$ ->
    initBubble()

【讨论】:

  • 可以,谢谢!函数定义得很好,但是数据属性有些混乱$ -> 产生$(function() {,这和$(document).ready(function() { 一样吗?
猜你喜欢
  • 1970-01-01
  • 2013-03-17
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多