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"時も走るとか、そういうことが起きてしまうのかなと。
的外れなところがあったら恐縮ですが、上記につきご教示いただけましたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/31 17:22