SlideShare a Scribd company logo
さらなるjsの深みへ#3

〜return false;じゃない、e.preventDefault()だ!〜

2012/11/08   れこ
ちょっと長いかも。

 前回の補足(クロージャについて)

 Event.preventDefault()とは

 Event.stopPropagation()とは

 次回の予定
クロージャのメリット

 グローバル空間を汚染しない
  名前の衝突がなくなる
  関数の中からしか変数を参照できない



 情報隠蔽
  外部から、オブジェクトの内部変数にアクセスできなくする
  不正、不用意な書き換えを阻止する
サンプル(見えるかな
Event.preventDefault()

 ネタバレ
  ブラウザの挙動をキャンセルする



 ページ内でイベントが発生した時に、ブラウザ本来の挙動を
  キャンセルする
  aタグのページ遷移をキャンセル
  aタグのページ内アンカーをキャンセル
  フォームの送信をキャンセル などなど
こんなHTML書いてませんか?




 formの送信キャンセル(この後Ajaxか何かの処理が走る想定)
  hoge()でreturn false;すればキャンセルされる
  けどHTMLに無駄なものが!!!(個人的に大嫌い)
こう書けます。




HTMLがすっきり。
大人の都合で・・・。省きます。
stopPropagation()についてはお預け

 まとめ
   preventDefaultを有効に使うとHTMLがスマートに。
   jsでの思い通りの動作を手中に収めたも同然(ではない

 return false;とpreventDefault()は何が違うのか
   preventDefault()
      ブラウザが従来行うはずの挙動を止める
   return false;
      ブラウザ挙動とついでにイベントバブリングも止める

 イベントバブリングは又の機会に。(あまり使わない気が。
次回予告

 第4話:jsの高みへ
  jsの関数呼び出しパターン4つについて調べてみた
  「this」について – カスケードを当たり前に使えるようになる
参考リンク

 event.preventDefault() と event.stopPropagation() の違い -
  刺身☆ブーメランのはてなダイアリー
  http://d.hatena.ne.jp/a666666/20100916/1284569967

 preventDefault() と stopPropagation() | jmblog.jp
  http://jmblog.jp/archives/169

 return false, preventDefault, and stopPropagation in jQuery - Jon
  Vines' Blog
  http://blog.webvines.co.uk/post/3743395029/return-false-
  preventdefault-and-stoppropagation-in

 JavaScriptをまじめに考えました+
  http://www.slideshare.net/taikiken/javascript-14882630

More Related Content

PPTX
Lt 110205
Tomoyuki Obi
 
PDF
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
 
PDF
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
 
PPTX
jQueryで気をつけてほしいこと
良太 増子
 
PDF
Scc2014 :jQueryの仕組みを完璧に理解する
Jun Futakawa
 
PDF
そろそろJavaみなおしてもええんやで
なおき きしだ
 
PDF
JS初心者だけど3ヶ月でこんだけ書けるようになりました
Miki Yokouchi
 
PDF
JavaScript Basic 01
Yossy Taka
 
Lt 110205
Tomoyuki Obi
 
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
 
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
 
jQueryで気をつけてほしいこと
良太 増子
 
Scc2014 :jQueryの仕組みを完璧に理解する
Jun Futakawa
 
そろそろJavaみなおしてもええんやで
なおき きしだ
 
JS初心者だけど3ヶ月でこんだけ書けるようになりました
Miki Yokouchi
 
JavaScript Basic 01
Yossy Taka
 

Viewers also liked (7)

PDF
JavaScriptことはじめ
Yuki Ishikawa
 
PDF
JavaScript 研修
Yuki Ishikawa
 
PPTX
モテる JavaScript
Osamu Monoe
 
PDF
Java SE 再入門
minazou67
 
PDF
JavaScript入門-基礎編
mactkg
 
PDF
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
PDF
JavaScript難読化読経
Yosuke HASEGAWA
 
JavaScriptことはじめ
Yuki Ishikawa
 
JavaScript 研修
Yuki Ishikawa
 
モテる JavaScript
Osamu Monoe
 
Java SE 再入門
minazou67
 
JavaScript入門-基礎編
mactkg
 
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
JavaScript難読化読経
Yosuke HASEGAWA
 
Ad

More from Shingo Inoue (7)

PDF
Lt8 JavaScriptで配列をコピーする
Shingo Inoue
 
PDF
LT#7 Hello coffeeしてきた
Shingo Inoue
 
PPTX
LT#6 Taskete
Shingo Inoue
 
PDF
コードゴルフ 〜今日から始める難読コードの世界〜
Shingo Inoue
 
PDF
そしてjsの基礎へ戻る#4
Shingo Inoue
 
PDF
LTって、何の略だっけ。1
Shingo Inoue
 
PDF
わかる LT@2
Shingo Inoue
 
Lt8 JavaScriptで配列をコピーする
Shingo Inoue
 
LT#7 Hello coffeeしてきた
Shingo Inoue
 
LT#6 Taskete
Shingo Inoue
 
コードゴルフ 〜今日から始める難読コードの世界〜
Shingo Inoue
 
そしてjsの基礎へ戻る#4
Shingo Inoue
 
LTって、何の略だっけ。1
Shingo Inoue
 
わかる LT@2
Shingo Inoue
 
Ad

さらなるjsの深みへ#3