有沒有辦法檢測按鈕被按下的方式?檢測按鈕在javascript中的按下方式
- 鼠標單擊鼠標//通過事件凸顯標籤
- 然後回車鍵//按鍵事件
- 觸摸(手機)//觸摸事件
有一個簡短的JavaScript方式檢測到這個?或者,我是否需要爲點擊,輸入和觸摸添加事件偵聽器?我想獲取表單提交的數據。謝謝
有沒有辦法檢測按鈕被按下的方式?檢測按鈕在javascript中的按下方式
有一個簡短的JavaScript方式檢測到這個?或者,我是否需要爲點擊,輸入和觸摸添加事件偵聽器?我想獲取表單提交的數據。謝謝
根據我的經驗,'輸入'和'觸摸'也觸發'點擊'。
我認爲可以安全地添加一個事件監聽器來'點擊'來處理所有你需要的事件。
試一下:https://jsfiddle.net/wvv2v8r2/
<input type="submit" value="test click" />
$('input').click(function(){
alert('clicked');
});
我很震驚,進入觸發點擊!?!?我在閱讀你的答案後進行了測試。 +1 –
他們都觸發點擊,但你不問如何檢測哪個是哪個? –
@Whathaveyoutried是的我只是給了+1不正確的答案,因爲我學到了新的東西? –
點擊觸摸,你可以用的onclick 協助處理,但對於通過標籤突出然後回車鍵,你必須單獨的代碼
這怎麼可以辦理
通過標籤突出然後回車鍵//按鍵事件
$('a').click(function(e) {
console.log(e);
// Screen Positions returns 0 on enter
if(e.screenX == 0 && e.screenY == 0) {
alert('Enter');
}
else if(e.type == "click") {
alert('click');
}
});
DEMO因爲休息,你會很容易發現。
我只需要觸摸左側,但到目前爲止這是真棒!你能告訴我爲什麼Screen Positions在輸入時返回0嗎?它是原生的JavaScript行爲? –
@Deadpool當元素被按下或點擊時,事件可能發生在該位置。所以它返回(0,0)就進入了。 –
全部mousedown
,click
和key press
事件將僅觸發click
事件。不需要有三個不同的事件監聽器。
如果您有全部三個事件處理程序,那麼執行順序將有所不同。
對於keypress
,首先keypress
將點燃然後click
。
如果您有mousedown
,那麼首先mousedown
然後click
將觸發。
document.querySelector("#button").addEventListener("click", function(event) {
console.log("click");
}, false);
document.querySelector("#button").addEventListener("mousedown", function(event) {
console.log("mousedown");
}, false);
document.querySelector("#button").addEventListener("keypress", function(event) {
var keyCode = event.keyCode || event.which;
if(keyCode===13) {
console.log("enter pressed");
}
}, false);
你會發現,演示,都指的是click
事件的結束。
所以最好只是單擊事件本身。
你是什麼意思的「短的JavaScript方式」? – Data2000
我猜不出爲什麼你需要它。什麼是目的? – lv0gun9