• 締切済み

jQuery 同じ処理を関数にまとめたい

jQueryでプログラムを書いています。 同じ処理が複数出てきているので一まとめにしてて見やすくしたいのですが・・・・ やり方がわかりません。 たとえば、 $("#id1").on("click",function(){ var num1=1; var num2=2; var a; a=num1 + num2; alert(a); }) $("#id2).on("hover",function(){ var num3=3; var num4=4; var b; b=num3 + num4; alert(b) }) のようにほぼ同じ処理を違うイベントで行う場合です。 関数自体は作れるのですが、、、、 function calc(numa,numb){ alert(numa+numb); } jquery内でjavascript(Java?)の関数は使えないというのを聞いたことがあります。 どのようにすれば使ええるのでしょうか?

みんなの回答

回答No.2

何を勘違いされてるのかわかりませんが。 jqueryはjavascriptのライブラリですよ。

回答No.1

>jquery内でjavascript(Java?)の関数は使えない そんなことはありませんよ。 $(document).ready(function(){ alert("TEST"); }); これはちゃんと動作します。 ちなみに、JavaScriptとJavaは全く別物です。その説明はここではしませんが。 さて本題です。 例示されたコードから「まとめ」た例を作成し提示することはできますが、その前にまず文書構造を見直してもらいたいです。 「jQueryによって、一部の値が違うだけの同じ流れの処理を行う」要素が複数あるのに、個別のIDしかないというのはよくないです。 HTMLが提示されていないのと例示のJSがあまりにも「例えば」すぎるので断言はできませんが、一般にそういう場合には共通のclassを付け「jQueryのeachを使ってそのclassが付いた要素全てに適用する」という組み方をします。 HTMLと本来のJSのコードを示してもらえれば、具体的に回答できると思います。 ちなみに「例えば」の「まとめ」例。 function calc(numa,numb){ alert(numa+numb); } for(i=1;i<=2;i++){ $("#id" +i).on("hover",function(){ calc(i * 2 - 1, i * 2); }); })