Shift + Click Событие Горе - PullRequest
       30

Shift + Click Событие Горе

1 голос
/ 26 августа 2010

Я уверен, что я делаю что-то ужасно глупое, чтобы это не сработало, но я не могу заставить мое событие смены сработать.Я пробовал оба:

$('.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 - это раскрывающийся список с несколькими выборками, и событие click срабатывает в обеих версиях, но событие shiftkey никогда не регистрируется.

1 Ответ

1 голос
/ 26 августа 2010

Можете ли вы быть уверены, что ваш начальный селектор работает?Т.е.:

$('.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;
        }
    });
});
...