人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Jqueryにて、1つのDOMに対して、2つのイベント(読み込みとクリック)を割り当てるスマートな書き方を教えて下さい。

具体的には、<input type id='hatenasan'>このタグが最初に呼び出されたときと、クリックされた時に同じ処理を実行したいです。

書き方がわからないので、今は2つ書いています。

--- < 現在 > ---

HTMLの呼び出し時と、hatenaさんがクリックされた時に「元気ですか?」と警告する処理。

$(function(){
alert('元気ですか?');
$('#hatenasan').click(function(e){alert('元気ですか?');});
});

---

これをもう少しスマートに掛けないものでしょうか。
たとえば、

$('#hatenasan').click(function(e){alert('元気ですか?');}).keyup(function(e){alert('元気ですか?');});

こんな感じでは書けないのでしょうか


●質問者: cbic
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Click DOM Hatena jQuery いもの
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tilfin
●35ポイント

$(function(){

$('#hatenasan').click(function(e){alert('元気ですか?');}).click();

});

でどうでしょうか。

◎質問者からの返答

うごきました!が、これだと、クリックだけでしか動かないように思えるのですが・・・。なぜ起動時にも動くのでしょうか・・・


2 ● tilfin
●35ポイント

> うごきました!が、これだと、クリックだけでしか動かないように思えるのですが・・・。

> なぜ起動時にも動くのでしょうか・・・

jQuery オブジェクトの click() は引数があればイベント時の実行 function をセットする動作をし、

引数なしで呼び出すと実際にクリックイベントを起こす動作となるからです。

※この仕様は dblclick などの他のイベントでも同様です。


$(function(){ }内のコードはドキュメントのロード完了時に実行されるので、

イベントをセットし、 click(function(e){alert('元気ですか?');})

続けてイベントを起こすことで、click()

起動時にも動作するようになるわけです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ