2012-09-21 41 views
0

我不知道看這個東西。我有一個Rails 3.2.8應用程序,我有一個頁面,其中所有的Coffeescripts都在觸發,除了一個。CoffeeScript的事件不觸發

我的控制器被稱爲「應用程序」,而我的CoffeeScript文件app.js.coffee。這裏是一個不點火電話:

$("#products_id").change -> 
    alert "hello" 

該項目在我看來呈現如下:

<select id="products_id" class="select required" name="products[id]"> 
    <option value=""></option> 
    <option value="1368">015-0761</option> 
    <option value="1752">030-237</option> 
</select> 

我使用Firefox和Firebug的調試。我已經驗證了apps.js腳本確實已加載了我的更改。當我選擇不同的東西時,我在選擇框上沒有任何活動。

我也到處移動呼叫的apps.js.coffee文件裏面,我使用的TextMate查看不可見的字符,以確保我沒有任何不好的空白。

回答

0

衛生署!頁面呈現時該元素不存在,它將在稍後顯示。因此,我需要將此呼叫更改爲:

$("#products_id").live "change", -> 
    alert "hello" 

工作正常!

+2

您應該使用['on'(http://api.jquery.com/on/)代替['live'(http://api.jquery.com/live/)這些天,在['live'文檔(http://api.jquery.com/live/)向您展示如何切換到'on'。 –