我想限制jQuery Click事件。
问题:如果您按键完成任何键...并单击鼠标:单击将被触发。
对于JS游戏开发者,我更喜欢:
如果任何键已关闭...并且您单击:单击不会被触发
如何准备联合$.event.special.click
进行绝对严格的“仅鼠标”点击?
答案 0 :(得分:4)
这可以通过使用semaphore来完成,例如旋转锁定。
这是通过在按下keydown时递增锁定来实现的。发生密钥时,将该锁定设置为0.在单击事件内部,测试锁定是否为0.如果不是,则不要发出单击操作。
var SpinningLock = 0;
$('#target').keydown(function() {
SpinningLock++;
});
$('#target').keyup(function() {
SpinningLock = 0;
});
$('#target').click(function() {
if( SpinningLock > 0) return;
//TODO: implement click action
});