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

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

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

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

jQuery

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

Q&A

解決済

2回答

764閲覧

jQueryでタイミング違うけど同じ処理がある場合

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/04/23 07:18

タイミングが違うけど同じ処理があります。次のような感じです。

////読み込み時
$(document).ready(function(){
//同じ処理
});

////入力時
$('input[name=write]').keyup(function() {
//同じ処理
});

////チェック時
$('input[name=check]').change(function(){
//同じ処理
});

このような場合、どうすればひとまとめにできるのでしょうか?

javascript

1(function($){ 2 3 ////読み込み時 4 $(document).ready(function(){ 5 //同じ処理 6 var write = $('input[name=write]').val(); 7 var multi = $('#multi').text(); 8 var result = write*multi; 9 $('#test').text(result); 10 }); 11 12 ////入力時 13 $('input[name=write]').keyup(function() { 14 //同じ処理 15 var write = $('input[name=write]').val(); 16 var multi = $('#multi').text(); 17 var result = write*multi; 18 $('#test').text(result); 19 }); 20 21 ////チェック時 22 $('input[name=check]').change(function(){ 23 //同じ処理 24 var write = $('input[name=write]').val(); 25 var multi = $('#multi').text(); 26 var result = write*multi; 27 $('#test').text(result); 28 }); 29 30})(jQuery);

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

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

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

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

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

guest

回答2

0

ベストアンサー

thisも使っていないようですし、1つの関数にしてしまいましょう。

javascript

1function func(){ 2 //同じ処理 3 var write = $('input[name=write]').val(); 4 var multi = $('#multi').text(); 5 var result = write*multi; 6 $('#test').text(result); 7} 8 9$(function(){ 10 func(); 11 $('input[name=write]').keyup(func); 12 $('input[name=check]').change(func); 13}); 14

なお、イベントの設定はready$())の中で行うことをおすすめします。

投稿2018/04/23 07:22

maisumakun

総合スコア145184

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

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

退会済みユーザー

退会済みユーザー

2018/04/23 09:00

いくつかの機能をfunctionの中に入れて、funcという名前を付ける。すると、別のところでfuncと書くだけで、中に入れた機能がズラっと生じるのですか!?今までチラホラ見かけた書き方でしたが、初めてこの意味がわかりました!感動です! すぐにアレンジできそうな箇所がいくつもあるので、さっそく挑戦してみたいと思います。 どうもありがとうございます。
guest

0

どちらかをもう片方に依存させればよいかと
なおロード時の処理はtriggerで処理すればよいでしょう。

javascript

1$(function(){ 2 $('input[name=write]').on('keyup',function() { 3 var write = $('input[name=write]').val(); 4 $('#test').text(parseInt($('#test').text()||0)+1); 5 }).eq(0).trigger('keyup'); 6 $('input[name=check]').on('change',function(){ 7 $('input[name=write]').eq(0).keyup(); 8 }); 9});

HTML

1<input type="text" name="write"> 2<input type="text" name="write"> 3<input type="text" name="write"> 4<input type="checkbox" name="check"> 5<input type="checkbox" name="check"> 6<input type="checkbox" name="check"> 7<div id="test"></div>

投稿2018/04/23 07:46

yambejp

総合スコア114843

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

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

退会済みユーザー

退会済みユーザー

2018/04/23 09:03

yambejpさん、いつもありがとうございますっ。 今回のですが、 .triggerと parseIntは かろうじて分かりますが、 ||0)+1);とか .eq(0)など 少し難しめなアレンジが入っていて、 私では使いまわしが難しそうです。 いつもご回答くださっているのに、ベストアンサーはスミマセン!!!(>_<)????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問