具体的には、<input type id='hatenasan'>このタグが最初に呼び出されたときと、クリックされた時に同じ処理を実行したいです。
書き方がわからないので、今は2つ書いています。
--- < 現在 > ---
HTMLの呼び出し時と、hatenaさんがクリックされた時に「元気ですか?」と警告する処理。
$(function(){
alert('元気ですか?');
$('#hatenasan').click(function(e){alert('元気ですか?');});
});
---
これをもう少しスマートに掛けないものでしょうか。
たとえば、
$('#hatenasan').click(function(e){alert('元気ですか?');}).keyup(function(e){alert('元気ですか?');});
こんな感じでは書けないのでしょうか
$(function(){
$('#hatenasan').click(function(e){alert('元気ですか?');}).click();
});
でどうでしょうか。
> うごきました!が、これだと、クリックだけでしか動かないように思えるのですが・・・。
> なぜ起動時にも動くのでしょうか・・・
jQuery オブジェクトの click() は引数があればイベント時の実行 function をセットする動作をし、
引数なしで呼び出すと実際にクリックイベントを起こす動作となるからです。
※この仕様は dblclick などの他のイベントでも同様です。
$(function(){ }内のコードはドキュメントのロード完了時に実行されるので、
イベントをセットし、 click(function(e){alert('元気ですか?');})
続けてイベントを起こすことで、click()
起動時にも動作するようになるわけです。
うごきました!が、これだと、クリックだけでしか動かないように思えるのですが・・・。なぜ起動時にも動くのでしょうか・・・