2012-03-05 94 views
0

我構建了一個Rails 3應用程序,並試圖讓jQuery .on()函數工作。目前它沒有做任何事情。製作jQuery .on()與Rails 3一起工作

在資產/ JavaScript的/ V-的application.js:

console.log('application'); 

$('body').on('click', function(){ 
    alert('test'); 
}); 

當應用程序加載時,控制檯顯示「應用程序」(因爲它應該),但是當我點擊在身上,沒有火災警報。如果我將完全相同的javascript粘貼到控制檯中並單擊正文,則會觸發相應的警報。

如果我在瀏覽器中查看v-application.js,它會顯示該函數。

我使用的是最新版本的jQuery-rails(2.0.1)和rails(3.2.2)。這都是在開發環境中。

這是怎麼回事Rails不知道如何處理這個基本的函數調用?這是否與資產管道有關?我如何得到這個工作?

+3

你有沒有準備好的功能? – loganfsmyth 2012-03-05 17:28:50

+1

不知道你的意思是Rails不知道如何處理它,這與Rails無關。 JS控制檯中是否有任何內容? – 2012-03-05 17:30:31

回答

2

我會猜測你沒有準備好的功能。

$(function() { 
    $('body').on('click', function(){ 
    alert('test'); 
    }); 
}); 

如果直接在主JS文件貼的代碼,做$('body')不會找到任何東西,因爲當腳本代碼被解釋,body標籤還沒有被處理。在就緒函數中粘貼邏輯將等待整個文檔被解析。

+0

就是這樣。我早些時候已經有了一個準備好的功能,但一直有其他問題,並已經把所有東西都剝離出來,以減少複雜性並隔離問題。當然,我在堆棧中引入了一個新問題。 – charliepark 2012-03-05 17:41:22

+0

啊,是的,引入一個問題來修復另一個問題是最糟糕的:P很高興幫助。 – loganfsmyth 2012-03-05 17:45:45

0

你使用jQuery 1.7.1嗎?那是什麼時候發生的,之前有過這個問題。

的jsfiddle這裏:http://jsfiddle.net/LmC6x/

正如@loganfsmyth雖然說,我推薦使用現成的功能。