2012-01-04 9 views
2

私は間違っていますか?私は各アンカーに.data()を割り当てようとしています。スクリプトはタイトルのみを削除しますが、data()には何も保存しません。私がconsole.log(title)を試しても、それは素晴らしいタイトルを書きましたが、まだそれを保存していませんでした。私はCoffeescript jQuery set data()

(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

正常に動作するように見えます...データが設定されていることを確認するためにどのようにテストしていますか? –

+0

私は 'console.log'を試しました。どうやら、関数の順序(これは奇妙です)のためにうまくいきませんでした。とにかくありがとう! – mreq

答えて

2

はたぶん少しの周りのものをシャッフル次のようにコンパイルされ出力されたコーヒー

$(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を使用しています。私が見ることができるのは、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(){' – mreq

+0

はい見つかりました@ http://api.jquery.com/jQuery/、nvm – mreq