单击按钮时,我正在尝试检测 Enter 按键事件。
我是javascript的新手,不知道去的好方法......
HTML:
<div id="div"> Only execute javascript on click, not enter key press </div>
JAVASCRIPT:
$("#div").click(function () {
/* IF ENTER KEY PRESSED, RETURN FALSE */
$("#div").keypress(
function(event){
if (event.which == '13') {
event.preventDefault();
alert('clicked');
}
});
/* Div has been clicked, continue code... */
});
这不起作用...
也许还有更好的方法:
$("#div").MOUSE_CLICK_EVENT(function () {});
答案 0 :(得分:2)
您需要像以下一样停止传播:
$('#div').keydown(function(event){
if (event.which == '13') {
event.preventDefault();
event.stopPropagation();
}
});
stopPropagation:阻止事件冒泡DOM树,防止任何父处理程序收到事件通知。
答案 1 :(得分:1)
正如其他人所说,除了stopPropagation
之外,您还需要preventDefault
,并且您应该倾听keydown
事件而不是keypress
。
纯JavaScript的方法是:
document.getElementById('div').onkeydown = function (evt) {
if (evt.which === 13) {
evt.preventDefault();
evt.stopPropagation();
return false;
}
};
document.getElementById('div').onclick = function (evt) {
// do whatever you want here
};
答案 2 :(得分:0)
如果仍然需要任何人,请尝试此操作。快速解决方案。
$("form").keypress(function(e) {
//Enter key
if (e.which == 13) {
return false;
}
});