menu
menu

キーワード検索

 

1月更新・前月(12月)の人気記事トップ10 - 01/03/2020

  1. ( 1 - ) 【Mac】Macのユーザー名とアカウント名を変更する
  2. ( 3 ↑) 【iPhone・iPad】iPhoneのメモリを簡単に解放する方法
  3. ( 5 ↑) 【iPhone・iPad】投稿の準備中にエラーが起きました。後でやり直してください。
  4. ( 4 - ) 【CSS】CSSだけでドロップダウンメニュー
  5. ( 2 ↓) 【Mac】Finderにフォルダのフルパスを表示させる方法
  6. (圏外↑) 【Mac】Safariでソースコードを見る方法
  7. (圏外↑) 【Mac】iMovieの保存場所を変更する
  8. (圏外↑) 【制作Tips】iPhone画面解像度まとめ
  9. ( 7 ↓) 【Google】Googleアカウントのメールアドレスを変更する方法
  10. (圏外↑) 【制作Tips】画面解像度一覧表
このエントリーをはてなブックマークに追加

【JavaScript】return falseの代わり

【JavaScript】return falseの代わり

こんにちは(・∀・)

JavaScriptでaタグなどに使用してタグを無効にするreturn false、通常であれば特に問題はないのですが、最近aタグを無効にしつつもクリック(タッチ)イベントは伝えたいということがありました。例えばよくあるページ内スクロールでページ内を移動しつつ他のこともしたい場合、return falseでaタグの挙動が無効化されているとページ内スクロールの他にもう一つ何かしたくてもそのクリック(タッチ)イベントは、return falseによって伝えてくれません。ではどうすれば良いか...

preventDefault

そういう時はreturn falseの代わりにpreventDefaultを使えば解決します。

ボタンをクリックしてナビを展開するタイプのスマホサイトなどでよくあるタイプのメニューボタンで、クリックしてページ内移動しつつ展開したナビを閉じたい場合、return falseだとページ内移動はしても開いたナビを閉じてくれません。そこでreturn falseの代わりにpreventDefaultを使えばaタグを無効にしつつもクリック(タッチ)イベントは伝えてくれます。

サンプル1のJavaScript

preventDefaultを使ったサンプルです。

preventDefault

$(function() {
//移動するスクリプト
$('a[href^=#]').click(function(ev) {
var href= $(this).attr('href');
var target = $(href == '#' || href == '' ? 'html' : href);
var position = target.offset().top;
$('html,body').animate({scrollTop: position}, 500, 'swing');
//return false;
ev.preventDefault();
});
});
Result
クリック(タッチ)イベントにpreventDefaultを使用しているサンプル

サンプル2のJavaScript

return falseを使ったサンプルです。

return false

$(function() {
//移動するスクリプト
$('a[href^=#]').click(function() {
var href= $(this).attr('href');
var target = $(href == '#' || href == '' ? 'html' : href);
var position = target.offset().top;
$('html,body').animate({scrollTop: position}, 500, 'swing');
return false;
});
});
Result
クリック(タッチ)イベントにreturn falseを使用しているサンプル


関連リンク

ページトップボタンとページ内スムーススクロール
jQueryでページトップボタン
JavaScriptでスムーススクロール

  • JavaScript return false
このエントリーをはてなブックマークに追加