質問編集履歴

2 追加

pecchan

pecchan score 242

2017/04/21 10:00  投稿

【Ruby on Rails】turbolinkをオフにしたらjsが動作しなくなりました
お世話になっております。
あるリンク先の呼出時のみturbolinkをオフにして、jsを実行しようと試みましたが
app\assets\javascripts\common.jsまで動作しなくなりました。
具体的には、リンク先のクリックでポップアップが表示されるのが正解ですが、
別ページに移動し、戻ってきてクリックするとページの遷移になってしまいます。
画像を添付しました。
正常パターンは下図のようにjsによりポップアップウィンドウが表示されます
![正常パターン](920b9389ed18af5dacf597f4dcbb9959.jpeg)
別ページに移動後、戻ってきてクリックすると、下図のようになります。
jsが動作せずただのページ遷移になっているようです。
![NGパターン](9927d38735586653e3419d4ee500d0b8.jpeg)
呼出し元
```ruby
<!-- data: { no_turbolink: true }を付けました。 -->
<%= link_to 'ポップアップのテスト', '/choice.html', class: 'iframe_box', data: { no_turbolink: true } %>
```
こっちでも一緒
呼出し元
```ruby
<%= link_to 'ポップアップのテスト', '/choice.html', class: 'iframe_box', data: { turbolinks: false } %>
```
実行させたいjs(app\assets\javascripts\common.js)
```javascript
document.addEventListener 'turbolinks:load', ->
 $('a.colorbox').colorbox()
 return
$ ->
 $('.iframe_box').colorbox
   iframe: true
   innerWidth: 600
   innerHeight: 600
 return
```
なぜ、common.jsが動作しなくなっているのでしょうか?
宜しくお願い致します。
宜しくお願い致します。
2017/4/21 coffe scriptのエラー画像追加
returnを2つ記述するとエラーが出るようなのですが・・・。
![イメージ説明](55e186fa764f649d527997ab569ce509.jpeg)
2017/4/21 jsの読み込ませ方追加
jsは、
app\assets\javascripts以下にcommon.js.coffeeを置いています。内容は以下になります。
```coffescript
document.addEventListener 'turbolinks:load', ->
$('.iframe_box').colorbox
   iframe: true
   innerWidth: 600
   innerHeight: 600
 return
 $('a.colorbox').colorbox()
 return
```
上記jsをapp\assets\javascripts\application.jsで
読み込んでます
```coffescript
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//= require bootstrap-sprockets
//= require data-confirm-modal
//= require cocoon
//= require jquery.colorbox
//= require common
```
  • Ruby on Rails

    8872 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • jQueryプラグイン

    619 questions

    jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

1 追加

pecchan

pecchan score 242

2017/04/20 16:43  投稿

【Ruby on Rails】turbolinkをオフにしたらjsが動作しなくなりました
お世話になっております。
あるリンク先の呼出時のみturbolinkをオフにして、jsを実行しようと試みましたが
app\assets\javascripts\common.jsまで動作しなくなりました。
具体的には、リンク先のクリックでポップアップが表示されるのが正解ですが、
別ページに移動し、戻ってきてクリックするとページの遷移になってしまいます。
画像を添付しました。
正常パターンは下図のようにjsによりポップアップウィンドウが表示されます
![正常パターン](920b9389ed18af5dacf597f4dcbb9959.jpeg)
別ページに移動後、戻ってきてクリックすると、下図のようになります。
jsが動作せずただのページ遷移になっているようです。
![NGパターン](9927d38735586653e3419d4ee500d0b8.jpeg)
呼出し元
```ruby
<!-- data: { no_turbolink: true }を付けました。 -->
<%= link_to 'ポップアップのテスト', '/choice.html', class: 'iframe_box', data: { no_turbolink: true } %>
```
こっちでも一緒  
呼出し元  
```ruby  
<%= link_to 'ポップアップのテスト', '/choice.html', class: 'iframe_box', data: { turbolinks: false } %>  
```  
 
 
実行させたいjs(app\assets\javascripts\common.js)
```javascript
 
 
 
 
 
document.addEventListener 'turbolinks:load', ->  
 $('a.colorbox').colorbox()  
 return  
 
 
$ ->
 $('.iframe_box').colorbox
   iframe: true
   innerWidth: 600
   innerHeight: 600
 return
```
なぜ、common.jsが動作しなくなっているのでしょうか?
宜しくお願い致します。
  • Ruby on Rails

    8872 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • jQueryプラグイン

    619 questions

    jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る