Shift +单击事件困境

时间:2010-08-26 08:52:19

标签: jquery events click shift ctrl

我确信我正在做一些非常愚蠢的事情,因为这不起作用,但我不能让我的轮班活动开火。我试过了两个:

$('.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显示为undefined。知道我做错了什么吗?

ShowCannedReport_UserFilterDropdown是一个多选下拉列表,并且两个版本都会触发click事件,但Shiftkey事件从未注册。

1 个答案:

答案 0 :(得分:1)

您能确定您的初始选择器正常吗?即:

$('.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;
        }
    });
});
相关问题