menu
menu

キーワード検索

 

前月(2月)の人気記事トップ10

  1. ( 1 - ) 【CSS】CSSだけでドロップダウンメニュー
  2. ( 2 - ) 【Mac】Macのユーザー名とアカウント名を変更する
  3. ( 3 - ) 【jQuery】jQueryでドロップダウンメニュー
  4. ( 6 ↑) 【PHP】PHPでシンプルなメールフォーム
  5. ( 5 - ) 【WiMAX】HUAWEI W04 気づくとWi-Fiの接続が切れてる
  6. ( 7 ↑) 【iPhone・iPad】iPhoneのメモリを簡単に解放する方法
  7. ( - ↑) 【jQuery】入門5. jQueryで日時を表示
  8. ( - ↑) 【MySQL】Windows 10にMySQLをインストール
  9. ( 9 - ) 【制作Tips】iPad画面解像度まとめ
  10. ( 3 ↓) 【jQuery】jQueryでドロップダウンメニュー
このエントリーをはてなブックマークに追加

【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
このエントリーをはてなブックマークに追加