回车和button按钮都绑定同一个事件,如何避免按回车的时候button重复点击
我对回车进行检测,按回车的时候执行begin()函数;document.onkeydown=function(event){switch(event.keyCode){c...
我对回车进行检测,按回车的时候执行begin()函数;
document.onkeydown = function(event){
switch(event .keyCode) {
case 13 : beginLottery($("button"));break; // enter 键
}
};
button同样绑定begin()函数,因为我想用鼠标点击这个按钮的时候也能执行;
<button onclick="beginLottery(this);">开始</button>
问题出在这里,当我点击一次button之后,焦点就定位到了button上,此时每次按回车,button都会被点击两次,请问如何避免这种问题出现??? 展开
document.onkeydown = function(event){
switch(event .keyCode) {
case 13 : beginLottery($("button"));break; // enter 键
}
};
button同样绑定begin()函数,因为我想用鼠标点击这个按钮的时候也能执行;
<button onclick="beginLottery(this);">开始</button>
问题出在这里,当我点击一次button之后,焦点就定位到了button上,此时每次按回车,button都会被点击两次,请问如何避免这种问题出现??? 展开
2个回答
展开全部
其实你的业务就是想实现,当我点击 Button 或者按下回车时,都触发beginLottery动作。
那么,你可以保存一个全局变量,用来记录Button的焦点状态,
<button onclick="beginLottery(this);" onfocus="window.buttonIsFocused=true;" onblur="window.buttonIsFocused=false;">开始</button>
然后,在keydown回调中增加一次校验就可以了:
document.onkeydown = function(event){
switch(event.keyCode) {
case 13:
if (!window.buttonIsFocused) beginLottery($("button"));
break; // enter 键
}
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询