Jquery:如何自定义CLICK事件?

时间:2012-07-30 00:01:06

标签: jquery events

我想限制jQuery Click事件。

问题:如果您按键完成任何键...并单击鼠标:单击将被触发。

对于JS游戏开发者,我更喜欢:

如果任何键已关闭...并且您单击:单击不会被触发

如何准备联合$.event.special.click进行绝对严格的“仅鼠标”点击?

1 个答案:

答案 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
});