我一直在試圖找到一種方法來爲多個事件添加相同的動作。jQuery - 爲多個事件添加相同的動作&綁定
我有以下行爲分配給#comid(這是一個選擇菜單)。
$("#comid").change(function()
{
comid = $("#comid").val();
//alert(comid);
$('#com_photo').addClass('loading');
$('#com_photo').load('ajax.php?requestType=ajax&action=get_com_photo&comid=' + comid, function() {
$('#com_photo').removeClass('loading');
$('#com_photo img').hide();
$('#com_photo img').fadeIn(1000);
alert('Image Loaded.');
});
});
現在,上面的代碼運行良好。當用戶從選擇菜單中選擇一個項目時,會觸發更改事件併發出ajax請求,並顯示圖像以及一個警告窗口,顯示「已加載圖像」。
但是,如果用戶不使用鼠標,而是使用鍵盤按鍵/按鍵從菜單中進行選擇,則需要觸發相同的操作。它沒有這樣做默認情況下,我希望它做了,但似乎並非如此,所以我想分配相同的動作爲keyup或keydown事件,但我不想寫(或複製/粘貼)相同的代碼再次。
一個,而搜索的我發現了在bind()後,我試圖做這樣的:
$("#comid").bind('keyup',function(event){
$("#comid").trigger('change');
}
它的工作原理,但是當我使用KEYUP,我看到警告窗口兩次說「圖像加載「,所以我覺得這種行爲是不需要的,因爲它好像是在提出兩次請求。
有什麼我做錯了嗎?還是有什麼更好的替代品,我想要完成?
感謝提前:)
使用鍵盤更改時,更改事件仍然會觸發。我認爲的區別在於它在onblur之前不會觸發,或者用戶在使用鍵盤改變它之後在其他地方點擊。 – ChrisThompson 2011-04-13 21:47:48
對,就是這個問題。有沒有解決方法? – Zubair1 2011-04-13 22:08:00