2013-03-18 68 views
0

我有奇怪的行为,在同一个文件中的变化事件正在工作,但点击事件不是。我知道我可能没有发布足够的代码,但我只想看看是否有人知道事件的原因可能会工作,但另一个不会。这里是我的代码:JQuery在点击不起作用

class AddBTS 
    constructor:() -> 

    $('#a').on 'change', (evt) => @a evt 
    $('#b').on 'change', (evt) => @b evt 
    $('#c').on 'click', (evt) => @c 


    a: (evt) => 
    console.log 'a works' 

    b: (evt) => 
    console.log 'b works' 

    c:() => 
    console.log 'c works' 

的HTML它指的是:

<input type="file" id="a"> 
<input type="file" id="b"> 
<button id="c">OK</button> 

事件上工作a和b罚款,但Click事件不会对C工件。

我编译的JS在DOM加载后执行。

任何人都可以给我一些关于什么可能导致这一点的指针,我会试试看。

有趣的是,当我双击三我得到以下错误:

Error in event handler for 'undefined': IndexSizeError: DOM Exception 1 Error: Index or size was negative, or greater than the allowed value. 

回答

3

你打电话给你的c函数:

@c() 

如果没有括号,你只能访问它。请记住,CoffeeScript不是Ruby;)。

+0

一百万谢谢你。因为CoffeScript允许你不用这样的括号:@a evt,它让我有点看到一个在工作,而不是在另一个。用@c()它现在工作正常:) – 2013-03-18 21:39:59

0

我不认为你因为你不使用它需要evt

$('#c').on 'click',() => @c 
+0

这与此有关吗?当然,一个未使用的变量不会有任何区别。 – Jivings 2013-03-18 21:23:36

+0

@Jivings,这不是纯粹的JS,可能是它编写的有趣。 – Starx 2013-03-18 21:24:56

+0

我已经删除了evt,但点击处理程序不起作用。我用更多的信息更新了我的问题。 – 2013-03-18 21:31:57