如何使用jQuery绑定同步事件

时间:2011-10-27 14:25:57

标签: javascript jquery event-handling mouseevent keyboard-events

如何在jQuery中将同步事件绑定到选择器?

我不是指如何抓住单击或悬停在某个元素上,而是如何在两个事件同时发生的情况下捕获两个事件。例如,mouseover和keydown,或click和keydown,如shift + click等。

提前致谢。

5 个答案:

答案 0 :(得分:2)

检测shift + click很简单:检查shiftKey对象的event属性。

另一方面,检查按下的键+鼠标事件(同时)......:

  • 将事件绑定到keydown / keyup函数,该函数将event.keyCodeevent.which存储在变量中
  • 创建一个轮询器函数,它定期重置此变量,以便只计算最后一个(例如:) 300毫秒内的击键次数
  • 添加mousedown事件,检查最后记住的keyCode(如果存在),并执行相关代码(如果适用)。

有关处理多个事件的完整代码(在示例中为两个keydown事件),请参阅 my previous answer

答案 1 :(得分:1)

通过将每个事件类型用空格分隔,可以一次绑定多个事件类型:

$('#foo').bind('mouseenter mouseleave', function() {
  $(this).toggleClass('entered');
});

答案 2 :(得分:0)

答案 3 :(得分:0)

您无法同时捕获鼠标事件和键盘事件或任何事件,因为每个事件处理程序一次只能处理一个事件。

答案 4 :(得分:0)

JQuery不提供开箱即用的任何此类功能。您必须通过事件自行跟踪状态更改。