0

如何在coffeeScript中编写此JavaScript代码?从Javascript到CoffeeScript

$('#id_tab a').click(function (e) { 
    $('ul.nav-tabs li.active').removeClass('active') 
    $(this).parent('li').addClass('active') 
}) 

它工作时,我把它放在我的html.erb文件

因此,我想这在CoffeeScript的文件:

$ -> 
    $('#id_tab a').click (e) -> 
     $('ul.nav-tabs li.active').removeClass 'active' 
     $(this).parent('li').addClass 'active' 

而且这是行不通的。 请帮忙!

+0

任何控制台错误? – Nishant 2013-02-08 13:43:51

+1

你已经完成了。 *是*你如何在CoffeeScript中编写代码。您的问题在此代码的外部,可能与文件的实际包含有关。尝试在文件顶部添加一个alert(“!!!”)',看看这个文件是否包含在你的页面中。 – meagar 2013-02-08 13:46:27

+0

CoffeeScript中的第一行“$ - >”是额外的。如果在原始JS代码中有$(function(){...},那么只需要该行。 – 2013-02-08 16:26:44

回答

2

有一个很好的网站JS2Coffee,你可以用它来检查你的脚本。你会看到你的咖啡脚本编译为:

$(function() { 
    return $('#id_tab a').click(function(e) { 
    $('ul.nav-tabs li.active').removeClass('active'); 
    return $(this).parent('li').addClass('active'); 
    }); 
}); 

相反,试试这个:

$ -> 
    $('#id_tab a').click (e) -> 
     $('ul.nav-tabs li.active').removeClass 'active' 
     $(this).parent('li').addClass 'active' 
     true 
    true 

您可以查看该StackOveflow答案的详细信息,但CoffeeScript的总是返回的最后一行。

相关问题