2011-07-17 9 views
2

エスケープキーを押したとき、または要素をクリックしたときに何か起きるようにしています。私は使用しようとしました..クリックまたはキー

if($('#some_id').click() || e.keyCode == 27) 
{ 
    alert('Click or esc'); 
} 

しかし、それは動作していないようですが、他に何か使えますか?私は個別に..

$('#some_id').click(...); 

か...

if(e.keyCode == 27) 

のように、各操作を行う場合、それは問題なく動作しますが、私はそれがコードの重複を避けるために一緒に働いていことを好むだろう。申し訳ありませんが、それは愚かな私は逃したが、実際にこの並べ替えを取得したいと思います。

ありがとうございました:)

答えて

13

使用 .bind() .on()(jQueryの1.7のように)複数のイベントで通過:

$("#some_id").on("click keyup", function (e) { 
    if (e.type == "click" || e.keyCode == 27) { 
     alert("click or esc"); 
    } 
}); 
2

あなたはコードの重複について述べました。それらを別々に行うが、あなたが関数にそれらの両方のために実行したいコードを入れない理由:

$('#some_id').click(function() { 
    doStuff(); 
}); 

$('#some_id').keypress(function (e) { 
    if (e.keyCode == 27) doStuff(); 
}); 

function doStuff() { 
    alert('Click or esc'); 
} 
関連する問題