- ベストアンサー
jqueryのイベント発火条件について
$(window).ready(function(){ //処理内容 } と $("#hogehoge").on("click",function(){ //処理内容 } で、まったく同じ処理内容です。この場合、処理内容を関数定義して呼び出すしかないのでしょうか?発火条件の部分を複数まとめて書いたりということはできないのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
イベントの発火条件というのは、単にイベントの種類を指しているのですよね? だとしたら、それは一般的な表現ではないので、多くの場合、通じないと思います。 さて、前置きはここまでとして、onで扱えるものであれば、同時に定義ができます。たとえば、$("#hogehoge")に対して、mouseenterとmouseleaveを同時に定義するには、単にイベント名をスペース区切りにするだけです。 $("#hogehoge").on("mouseenter mouseleave", function(){}); ただ、質問者さんの例の場合、readyはイベントではないはずで、onでは扱えないため、上記のような書き方はできないと思います。仮に、readyと似たような機能を持つwindow.onloadイベントに置き換えたとしても、やはり、この場合は、イベントターゲットが異なる(windowと#hogehoge)ので同時には指定できないと思います。 個人的には、質問者さんがおっしゃる「処理内容を関数定義して呼び出す」で、ほとんどの場合、十分かと思うのですが、何か問題でもあるのでしょうか。 $(window).on("load", hoge); $("#hogehoge").on("click", hoge); function hoge(){ //処理内容 }
お礼
ありがとうございました。