Rails6.0でタイピングアプリを作っています。
下記のコードを記述したら、タイトルのエラーが出て、何も表示されていない状態になりました。
どこが間違っているか教えてほしいです。
posts_controller.rb
ruby
1class PostsController < ApplicationController 2 def index 3 @posts = Post.all 4 end 5 6 def new 7 end 8end
new.html.haml
haml
1.texts-bar 2 %h1.texts Coming Soon... 3 4 %p#text 5 6 %script{:src => "script.js"}
script.js
javascript
1let p = document.getElementById('text'); 2 3//タイピングする文字列をここで用意しておく 4let textLists = [ 5 'Hello World', 6 'This is my App', 7 'How are you?', 8 'Hello Hello', 9 'I love JavaScript!', 10 'Good morning', 11 'I am Japanese', 12 'Let it be' 13]; 14let checkTexts = []; 15 16 17createText(); 18 19function createText() { 20 //文字列をランダムに取得する 21 let rnd = Math.floor(Math.random() * textLists.length); 22 23 //前の文字列を削除してから次の文字列を表示する 24 p.textContent = ''; 25 26 //文字列を1文字ずつに分解して、それぞれにspanタグを挿入する 27 checkTexts = textLists[rnd].split('').map(function(value) { 28 let span = document.createElement('span'); 29 30 span.textContent = value; 31 p.appendChild(span); 32 33 return span; 34 }); 35} 36 37document.addEventListener('keydown', keyDown); 38 39 40function keyDown(e) { 41 42 //キーボードからの入力は「e.key」に格納されている 43 if(e.key === checkTexts[0].textContent) { 44 checkTexts[0].className = 'add-blue'; 45 46 //0番目の配列要素を削除して、次の1文字を比較対象にする 47 checkTexts.shift(); 48 49 //配列要素が空っぽになったら次の問題を出す 50 if(!checkTexts.length) createText(); 51 } 52} 53
あなたの回答
tips
プレビュー