我的键码总是提示 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/