Предупреждение кода не определено в jquery onDropdownShown.Я не уверен, где я сделал ошибку - PullRequest
0 голосов
/ 23 мая 2018

Мой код ключа всегда выдает предупреждение undefined.Скажите, пожалуйста, ребята, если я допустил ошибку

 $('.newmultiselect').multiselect({
      enableFiltering: true,
      filterPlaceholder: 'Search',
      enableCaseInsensitiveFiltering : true,
      includeSelectAllOption: false,
      onChange: function(element, checked) {
        var selectID = $(element).parent().attr('id');
        $("#"+selectID).valid();
      },    
      onDropdownShown : function(event) {
        $('.newmultiselect').parent().find(".multiselect-search").on('keyup', function(){ 
             if (event.keyCode == 9 || event.keyCode == 13) {
                alert('0000');
             } 
            alert(event.keyCode);
            $('.multiselect-filter-hidden').focus();
        });
      }
  });

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Проблема заключается в том, что вы указали аргумент события во внешнем onDropdownShown обработчике событий вместо внутреннего keyup обработчика событий, где вы фактически собираетесь его использовать.

Также обратите вниманиечто вложенные обработчики событий не очень хорошая идея, так как вы дублируете внутренний обработчик каждый раз, когда выполняется внешний.Чтобы это исправить, измените обработчик keyup на использование делегированного шаблона.Попробуйте это:

$('.newmultiselect').multiselect({
  enableFiltering: true,
  filterPlaceholder: 'Search',
  enableCaseInsensitiveFiltering: true,
  includeSelectAllOption: false,
  onChange: function(element, checked) {
    var selectID = $(element).parent().attr('id');
    $("#" + selectID).valid();
  }
});

$(document).on('keyup', ".multiselect-search", function(e) {
  if (e.keyCode == 9 || e.keyCode == 13) {
    alert('0000');
  }
  alert(event.keyCode);
  $('.multiselect-filter-hidden').focus();
});
0 голосов
/ 23 мая 2018

Это потому, что вы используете event переменную onDropdownShown обратного вызова.

Вы должны использовать event переменную в событии keyup вместо

onDropdownShown : function() {
  $('.newmultiselect').parent().find(".multiselect-search").on('keyup', function(event) { 
       if (event.keyCode == 9 || event.keyCode == 13) {
          alert('0000');
       } 
      alert(event.keyCode);
      $('.multiselect-filter-hidden').focus();
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...