###前提・実現したいこと
いつもお世話になっております。
jQueryの関数のまとめ方と、その関数の呼び出し方法について、ご教授頂きたいです。
【実現したい事】
変数functionFireworksに関数を定義し、実行しました。(ソースコード上側)
定義した箇所では問題なく、作動しましたが、
別の箇所(下の方のelse ifの後)でも同様の関数を実施したいため、呼び出しましたが、エラーが発生し、
対応に困っており、ご教授頂きたいです。
※本サイトに似た質問があり、拝見させて頂きましたが、
勉強不足で理解できませんでしたので、教えて頂けると助かります。
https://teratail.com/questions/68561
###該当のソースコード
javascript
1 $(".target").each(function(){ 2 //var eachPosition = $(this).data("pointTop"); 3 //console.log($(this).data("pointTop")); 4 var target = $(this); 5 $(this).find("label").click(function(){ 6 var targetPosition = target.data("pointTop"); 7 var eachLabel = $(this); 8 var input = $(this).find("input"); 9 if(targetPosition===700){ 10 input.attr("value",2); 11 12 ////////////////////////////////////////////////////////////////////// 13 /////// 下記関数をfunctionFireworks(何かしらの変数or関数名)にまとめたいと考えています /////////// 14 var functionFireworks = (function(){ 15 16 //上記定義では問題なく、関数は実行されました。 17 //(変数に代入、関数名での設定の両方の方法で問題ありませんでした) 18 //下の方のelse ifの後の呼び出しでエラーが発生するため 19 //変数に格納せずに 20 //(function functionFireworks(){ 21 //での定義も試しましたが上手く行きませんでした。 22 23 console.log(input.attr("value")); 24 eachLabel.find("img.ball").fadeOut(0); 25 eachLabel.find("img.halfhalf").fadeIn(0,function(){ 26 var timerID = setTimeout(function(){ 27 eachLabel.find("img.halfhalf").fadeOut(0); 28 eachLabel.find("img.half").fadeIn(0,function(){ 29 var timerID = setTimeout(function(){ 30 eachLabel.find("img.half").fadeOut(0); 31 eachLabel.find("img.all").fadeIn(0,function(){ 32 var timerID = setTimeout(function(){ 33 eachLabel.find("img.all").fadeOut(500); 34 },500); 35 }); 36 },500); 37 }); 38 },500); 39 }); 40 return; 41 })(); 42 }else if(targetPosition===710){ 43 input.attr("value",1); 44 45 ////////////////////////////////////////////////////// 46 //上記input...の後にfunctionFireworksを実施したいです。 47 48 //下記方法や、functionFireworksの定義の仕方(変数に代入 or 関数名として定義) 49 //を試してみましたが、解決しませんでした。 50 //発動しない 51 //functionFireworks; 52 //エラー発生 53 //functionFireworks(); 54 //エラー発生 55 //var test = functionFireworks(); 56 }; 57 }); 58 });
###試したこと
上記ソースコードの該当箇所に合わせて記載させて頂きました。
回答1件
あなたの回答
tips
プレビュー