2010-08-26 3 views
1

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

+0

Предположительно его не работает в IE? –

+0

Вы действительно были бы правы. – Bob

ответ

1

Вы можете быть уверены, что ваш начальный селектор работает? I.e:

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

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