Shift + Click Event Woes

问题描述:

我敢肯定,我正在做一些非常愚蠢的事情,但这不行,但我无法让我的换班事件发生。我都试过:Shift + Click Event Woes

$('.ShowCannedReport_UserFilterDropdown').each(function (index, element) { 
     $(element).bind('click', function (event) { 
     if (!event.shiftKey && !event.ctrlKey) { 
     ShowCannedReport_UserFilter_Blur(this, event); 
     } 
     else { 
     ShowCannedReport_UserFilterWithShiftHeld = this; 
     } 
}); 

和:

$('.ShowCannedReport_UserFilterDropdown').each(function (index, element) { 
     $(element).click(function (event) { 
      if (!event.shiftKey && !event.ctrlKey) { 
       ShowCannedReport_UserFilter_Blur(this, event); 
      } 
      else { 
       ShowCannedReport_UserFilterWithShiftHeld = this; 
      } 
     }); 
    }); 

这两种显示event.shiftkey为未定义。任何想法,我做错了什么?

ShowCannedReport_UserFilterDropdown是一个多选下拉菜单,点击事件在两个版本上都触发,但shiftkey事件从未注册。

+0

想必它不能在IE中工作? – 2010-08-26 09:07:02

+0

你确实是对的。 – Bob 2010-08-26 09:09:37

你能确定你的初始选择器正在工作吗?即:

$('.ShowCannedReport_UserFilterDropdown').length; //is this >0 ? 

文档就绪事件处理程序中的代码是?

我已经设置了的jsfiddle模仿你想什么才达到,所有工程确定: http://jsfiddle.net/xT4ke/

而且,为什么你的每个项目进行遍历时,jQuery不会是你的,这应该足够了:

$('.ShowCannedReport_UserFilterDropdown').click(function (event) { 
     if (!event.shiftKey && !event.ctrlKey) { 
      ShowCannedReport_UserFilter_Blur(this, event); 
     } 
     else { 
      ShowCannedReport_UserFilterWithShiftHeld = this; 
     } 
    }); 
}); 
+0

谢谢。我知道这是愚蠢的 - 我忘了把它放在一个document.ready中 – Bob 2010-08-26 10:18:53