1

我正在整理一个新的应用程序,虽然我通常使用JQuery来处理这样的事情,但我想将它与Coffeescript进行比较,并选择正确的方法。此外,我想确保我知道如何使用coffeescript正确调用JQuery。如何使用JQuery关闭此对话框?使用Coffeescript?

对话框在以下DIV:

<div class="alert-message error"> 
    <a class="close" href="#">X</a> 
    <p>Here is some error text</p> 
</div> 

的造型把一个“X”在对话框右边距。当用户点击'X'时,整个div需要消失。

我将使用哪些JQuery代码或Coffescript代码来关闭对话框?该对话框可以出现在网站的任何页面上。

回答

4

试试这个:

$('.close').click(function(){ 
    $(this).parent().hide(); //finds parent element of clicked .close and hides it 
}); 
+0

感谢Samura的代码!绝对有效。我也希望获得相同的咖啡文本 - 任何人? –

+0

@Kevin所有你必须要做的事情CoffeeScript-ize它是用' - >'替换'function',并把'{'花括号''''替换掉。 CoffeeScript的#1规则是“它只是JavaScript”。 :) –

+0

@Trevor谢谢。我其实是这样做了并且解决了它。这是一个简单的例子,我真的主要希望看到不同的咖啡标记方法。 [btw - 你可以通过我的推特与我联系吗?] –

2

这里使用的CoffeeScript

$('.close').click() -> 
    $(this).parent().hide() 

// or on 1 line 
$('.close').click() -> $(this).parent().hide() 

// fat arrow version, not 100% sure on this, typing from ipad 
$('.close').click(e) => $(e.target).parent().hide() 

http://jashkenas.github.com/coffee-script/

+0

我只有在你的第一行开头添加了一个领先的'jQuery - >'后才能完成这项工作。因此,其中一行是:jQuery - > $(“。close”)。click - > $(this).parent()。hide() –

+0

@Kevin那么JS版本也是如此。使用'jQuery - >'(或者等价地,'$ - >'...除非你做了一些不寻常的事情,你会发现'$ == jQuery')只是确保你的代码在DOM之后运行已经加载,所以当你做'$('。close')'选择时,页面HTML中的'.close'元素就会存在。 –