2012-01-04 47 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