所以我想在頁面上按空格鍵時調用一個函數。唯一的問題是,如果函數集中在輸入欄中,則不能調用該函數。任何想法如何做到這一點?keydown監聽器的身體
此代碼的工作,但是,着眼於輸入欄中
$(document).keydown(function(e){
if (e.keyCode==32) {
stopplay();
}
});
所以我想在頁面上按空格鍵時調用一個函數。唯一的問題是,如果函數集中在輸入欄中,則不能調用該函數。任何想法如何做到這一點?keydown監聽器的身體
此代碼的工作,但是,着眼於輸入欄中
$(document).keydown(function(e){
if (e.keyCode==32) {
stopplay();
}
});
那麼你可以看看,看看那裏的事件起源仍是起火的功能:
$(document).keydown(function(e){
if(!$(e.target).is("input")) {
// it's NOT from an input!
}
});
使用此代碼
$(document).keydown(function(e){
if (e.keyCode==32 && !$(e.target).is("input")) {
stopplay();
}
});
更新到此:
if (e.keyCode==32 && !$(e.target).is(':input')) {
stopplay();
}
:input
是方便,如果你有其他的輸入elems的像select, textarea etc
它選擇所有的輸入元素。
使用event.stopPropagation()
方法,防止起泡的keydown。
$(':input').keydown(function(e){
e.stopPropagation();
});
更新:
如果你有以上適用於其他輸入元素,使用$(':input')
選擇。
Downvoter care to comment? – Popnoodles
我以爲你沒有完全讀過這個問題。我看了一下小提琴,並取消了downvote。 – r3wt
什麼是「輸入欄」?那是瀏覽器的地址欄嗎? – MeLight
你的代碼正在工作,請檢查這個小提琴http://jsfiddle.net/d3cv5/ –