2016-03-15 88 views
0

我使用this tutorial在我的Rails應用程序中加載頁面特定的JavaScript。我的文件結構如下所示:只有document.ready代碼在Rails頁面重新加載時運行

app/assets/javascripts/ 
├── application.js 
├── charts.coffee 
├── dashboard 
│   └── settings.js 
├── dashboard-bundle.js 
└── static_pages.coffee 

我預編譯我的資產config.assets.precompile += %w(*-bundle.js)和文件dashboard-bundle.js只是由線路//= require_tree ./dashboard/。然後,在我想要加載JavaScript的頁面上,我加入了包含= javascript_include_tag 'dashboard-bundle'的JavaScript。

這裏是長什麼樣我settings.js文件的一部分,就像一個樣本:

$(document).ready(function(){ 
    alert('Page and Javascript loaded!'); 
}); 
$('#renderChart1').click(function() { 
    alert('You want to edit options for chart1!'); 
}); 

當我第一次從另一個頁面加載頁面,都提醒出現在適當的時間;第一次在頁面加載,第二次當我點擊#renderChart1按鈕。

但是,當我重新加載頁面而不先轉到其他頁面時,只有第一個警報正常工作。點擊按鈕時,警報不會出現。

我已經試過安裝jQuery Turbolinks但這並沒有解決問題。

回答

1

我覺得#renderChart1加入DOM結合.click()方法之後,你應該移到document.ready,以確保該元素加載到DOM,像這樣:

$(document).ready(function(){ 
    alert('Page and Javascript loaded!'); 
    $('#renderChart1').click(function() { 
    alert('You want to edit options for chart1!'); 
    }); 
}); 
相關問題