2016-03-30 30 views
6

例如,我有一個輸入文本和一個按鈕如何將兩個元素上的兩個事件綁定到jQuery中的一個函數?

我想兩個事件,button.on點擊input.on KeyEnterPress綁定到一個相同的功能

我怎樣才能做到這一點?

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

可以同一類添加到這兩個元素,並附點擊的事件和KEYUP。 – 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); 

或者如果你只希望那些在一個(不是兩個)d ○:

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

注意如果最後是一個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都會將它們鏈接到選擇器,而不是獲取元素的兩倍。小點,但值得一提。 –

+0

你有2級權利? 'search'和'searchtext'? – mmativ

+0

檢查這一個,我綁定在一個事件處理程序。 – 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'); 
} 
相關問題