2013-03-18 120 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