0
0

More than 3 years have passed since last update.

jQuery イベント発火

Posted at

買い物リストアプリに非同期ツールを導入するため、カリキュラムの復習をしました。

非同期通信 (Ajax)エイジャックスと呼ばれる。
非同期通信とは
リクエスト後にレスポンスを返す際、ブラウザーに再読込されることなく通信が行われる通信法。
"Asynchronous JavaScript + XML"と表現される。
Ajaxでは、レスポンスのデータにJSONという形式が使われることが多い。

JSON
Java Script Object Notationの略で、データ交換を行うためのデータ記述形式の一種。
Rubyのハッシュと同様、キーとバリューの組み合わせでデータを表現する形式。

同期通信
デフォルトアクション
HTMLの要素を操作した際に定められている挙動
追加ボタンを押すとリクエストがおくれる。
リクエストに対してのレスポンスはJSON形式で返してほしい旨をリクエストに含めます。
フォーム要素のデフォルトアクションを無効にする。

非同期通信をする際は、リクエストにJSON形式で返してほしい旨の情報が含まれているため、その場合の対処をコントローラのアクションに明記する必要がある。
同期通信の際と同様viewsフォルダの中にJSON形式のファイルを準備することもできます。この時のファイル名は、○○.json.jbuilderという形式になる。
非同期通信では、ページがリロードされることはない。代わりに、レスポンスとして帰ってきたJSONのデータを利用してHTMLを操作する。

JavaScriptとjQueryを使用するための準備
gemfileに以下を記入
gem 'jquery-rails'
bundle install

Javascriptを記述するディレクトリを作成
Assetsディレクトリ内に、javascriptsというディレクトリを追加

javacscriptsディレクトリ内に
application.jsを追加

作成したjavascriptを読み込み記述
Application.html.hamlに
= javascript_include_tag 'application'
manifest.js
//= link_directory ../javascripts .jsを追記

jQueryを使えるようにする。
application.js内に
//= require jquery←jQueryを読み込む
//= require rails-ujs←RailsでJavaScriptを使用するためのもの
//= require_tree . ←application.jsが存在するディレクトリのjavascriptファイルが全てよみこむ
を追記

$(function(){
JavaScriptで関数を定義するにはfunction文を使う
$('.form').on('submit', function(e){
e.preventDefault() ←ディフォルトのイベントを止める
console.log("ヤッター") 
console.log() ブラウザーのコンソールにテキストを表示させるメソッド
});
});

$("セレクタ")
$の後にセレクタと呼ばれるHTMLの指定方法を記述することで、HTMLが習得される。
今回の$('.form').on('submit', function(e){
記述はクラスセレクタを使っている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0