javascript - jquery onDropdownShown 中未定义键码警报。我不确定我哪里做错了

标签 javascript jquery laravel

我的键码总是提示 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();
        });
      }
  });

最佳答案

问题是因为您在外部 onDropdownShown 事件处理程序而不是内部 keyup 事件处理程序上指定了事件参数,而您实际上打算在其中使用

另请注意,嵌套事件处理程序不是一个好主意,因为每次执行外部处理程序时都会复制内部处理程序。要解决此问题,请更改 keyup 处理程序以使用委托(delegate)模式。试试这个:

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

关于javascript - jquery onDropdownShown 中未定义键码警报。我不确定我哪里做错了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50483061/

相关文章:

JavaScript 错误 : 'document' is not defined. [no-undef]

mysql - postgresql 中的 JSON_CONTAINS()

php - 如何在 php laravel 中获取列为 Null 和条件

jquery - 是否有可用于在我的网站中进行视频修剪/剪切的 flash/JavaScript 库?

php - 如何创建全局对象 Laravel

Javascript代码重定向到同一页面上的一个部门

javascript - php中有替换功能吗?就像 JavaScript 的 Replace()

javascript - 更改事件监听器调用的函数内的变量不起作用

javascript - jQuery find() 用于无父元素集

jquery - 单击内联 html onclick 时,尝试使用 jQuery addClass 隐藏段落标记?