2013-01-23 50 views
0

如果這是一個基本問題,那麼首次使用CoffeeScript的道歉,但一個快速的谷歌失敗了我。在CoffeScript中使用'this'和jQuery方法(父)(將jQuery轉換爲CoffeeScript)

在點擊一個鏈接,我想抓住

我的HTML:

<td class="value-ignore" data-report-item="1"> 
    <a href="/report_item_ignores/new" data-remote="true">New ignore</a> 
</td> 

我的jQuery:

$('td.value-ignore a').click(function(){ 
    var id = this.parent().attr('data-report-item') 
    console.log(id) 
}); 

我CoffeScript(未遂):

$ -> 
    $('td.value-ignore a').click -> 
    id = @parent().attr('data-report-item') 
    console.log id 

錯誤:

Uncaught TypeError: Object http://example has no method 'parent' 

希望得到一些幫助。

謝謝

+2

我相信這是在普通的舊JS同樣的錯誤......難道你需要用'this'使用jQuery:'$(本).parent()' –

+0

啊是我的錯 - 是的,這是完美的。謝謝 – rwb

+0

如果你在做@parent()等你需要熟悉「胖」箭頭:=>。它「可以用來定義一個函數,並且可以將它與當前的值綁定在一起,就在現場。」它將父對象存儲在一個_this變量中,並對_this進行後續的「this」調用。 – jcollum

回答

1

是這樣的嗎?

jQuery ($) -> 
    $('td.value-ignore a').click -> 
    id = $(this).parent().attr('data-report-item') 
    console.log id