2016-03-30 8 views
6

は例えば、私は2つのイベントがしたい入力テキストとボタン2つの要素の2つのイベントをjqueryの1つの関数にバインドする方法は?

を持って、button.on

私はそれをどのように行うことができるものと同じ機能にバインドするためにクリックして、KeyEnterPress input.on?

$('#search.onClick OR $searchText.onKeyEnterPress') 
+1

あなたは、両方の要素に同じクラスを追加し、クリックのイベントを添付することができますをし、キーアップ。 – guradio

+0

https://jsfiddle.net/vfttf4Lx/サンプル – guradio

+0

https://jsfiddle.net/vfttf4Lx/1/のこのデモを確認してください。入力テキストのキーアップをキャプチャする場合は、イベントタイプを確認することもできます条件を行う – guradio

答えて

3

呼び出すための関数を作成します。

function myfunc(event){ 
    // some code 
} 

あなたは

$('#search').add($searchText).on('click keyup', myfunc); 

OR一つだけ(両方ではない上のものをしたい場合に行うことができます)d O:

$('#search').on('click', myfunc); 
$($searchText).on('keyup', myfunc); 

NOTE明確ではないことは、最後にはjQueryオブジェクトであるが、もしそうなら場合:

$searchText.on('keyup', myfunc); 
1

これはあなたが望むアプローチですか?

$('.but').on('click keyup',function(){ 
 
\t if (event.which == 13) { 
 
    console.log('1'); 
 
    return; 
 
    } 
 
\t console.log('1'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" class="but">

+0

なぜイベント処理スタイルを混ぜるのですか(つまり、両方に 'on'を使わないのはなぜですか?)私が見たほとんどのjQueryは、要素を2回取得するのではなくセレクタから連鎖させることもあります。マイナーポイントですが、言及する価値があります。 –

+0

あなたは2クラスが正しいですか? 'search'と' searchtext'ですか? – mmativ

+0

これをチェックすると、1つのイベントハンドラで 'bind 'されます。 – mmativ

0
function doOneThing(){ 
    console.log('Do one thing.'); 
} 

$("#search_input").on('keypress', function(e) { 
    if (e.which === 13) { 
     doOneThing(); 
    } 
}); 

$("#search_button").on('click', function(e) { 
    doOneThing(); 
}); 
0

demoを参照してください。

以下のコード見つけてください:

HTML:

<div> 
    <input type="text" id="searchText" placeholder="Type soemthing" /> 
    <br> 
    <br> 
    <button id="search"> 
    Click Me 
    </button> 
</div> 

JS:

$(function() { 
    $('#search').on('click', execute); 
    $('#searchText').on('keyup', execute); 
}); 

function execute() { 
    alert('Event Fired'); 
} 
関連する問題