2012-01-04 30 views
2

我在做什么错?我正在尝试将.data()分配给每个锚点。现在,该脚本只会删除标题,但不会在data()中存储任何内容。当我尝试console.log(title)它写的标题罚款,但仍然没有存储它。我在咖啡Coffeescript jQuery set data()

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

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

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

使用jQuery 1.7.1

我有以下行的编译输出如下

(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); 
+0

看起来它应该工作正常......你如何测试以确保数据设置? – 2012-01-04 01:24:53

+0

我试过'console.log'。显然,它没有工作,因为功能的顺序(这很奇怪)。不管怎么说,还是要谢谢你! – mreq 2012-01-04 09:05:58

回答

2

也许洗牌周围的一点点东西。我只能看到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() 
+0

是的,它的作品,谢谢!函数被定义好了,但是数据属性在某种混乱中'$ - >'产生'$(function(){',与$(document).ready(function(){'? – mreq 2012-01-04 09:05:02

+0

是的,发现它@ http://api.jquery.com/jQuery/,nvm – mreq 2012-01-04 09:26:13