質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

338閲覧

【jQuery】複数イベント登録したい処理がいくつかあり、対象イベントが一部重複する際の記述方法

ichi60

総合スコア7

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/10/31 16:21

jQueryでの処理の記述方法について質問させていただきます。

特定の要素に対して複数のイベントを登録したい場合、
$("対象要素").on("load resize", ~といった形で記述できることは調べてわかったのですが、

行わせたい個々の処理について、"A"という処理はload時だけ動いてくれればいいけど、
"B"という処理はload時とresize時に実行させたいといった場合は、どう記述するべきなのでしょうか?

例えば仮に、
・load時のみ動いてくれればよい"処理A"
・load時とresize時に動いてほしい"処理B"
・load時とscroll時に動いてほしい"処理C"
があった場合、

$(function(){ var $win = $(window); $win.on("load", function(){ $("対象要素").処理A; }).on("load resize", function(){ $("対象要素").処理B; }).on("load scroll", function(){ $("対象要素").処理C; }); });

という書き方をすれば、個々の処理が対象とすべきイベントのときだけ動くと思いますが、
"load"が重複していて、書き方が違うのではないかという気がしております...。

例のように、
"処理A"が「load時のみ動く必要がある(他で動作してはいけない)」ではなく
「load時のみ動いてくれればよい(本来は不要だけど他で動作してもいい)」というレベルなら

$(function(){ var $win = $(window); $win.on("load resize scroll", function(){ $("対象要素").行いたい処理A; $("対象要素").行いたい処理B; $("対象要素").行いたい処理C; }); });

といった書き方も一応できるのかもしれませんが、
"load resize" のときだけ動けばいい処理が "scroll"時も走るとか、そういうことが起きてしまうのかなと。

的外れなところがあったら恐縮ですが、上記につきご教示いただけましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

JavaScript

1$( function() { 2 var $win = $( window ); 3 $win.on( 'load', function() { 4 a(); 5 b(); 6 c(); 7 } ).on( 'resize', function() { 8 b(); 9 } ).on( 'scroll', function() { 10 c(); 11 } ); 12} ); 13```とか 14```JavaScript 15$( function() { 16 var $win = $( window ); 17 $win.on( 'load', function() { 18 a(); 19 $win.on( 'resize', function() { 20 b(); 21 } ).on( 'scroll', function() { 22 c(); 23 } ).trigger( 'resize' ).trigger( 'scroll' ); 24 } ); 25} );

【.trigger() | jQuery API Documentation】
http://api.jquery.com/trigger/

投稿2017/10/31 16:32

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ichi60

2017/10/31 17:22

早速ご回答いただき、ありがとうございます。 周囲に聞ける人がいなかったので、大変助かり参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問