Javascript 退出时关闭superfish菜单
我有一个问题,superfish没有在退出键上正确关闭。它确实在第一级菜单的escape上关闭,但我有三个级别,当我切换到其他级别时,escape键事件没有注册 这是我的代码,顺便说一句,我也在使用angular.js:Javascript 退出时关闭superfish菜单,javascript,jquery,angularjs,iframe,superfish,Javascript,Jquery,Angularjs,Iframe,Superfish,我有一个问题,superfish没有在退出键上正确关闭。它确实在第一级菜单的escape上关闭,但我有三个级别,当我切换到其他级别时,escape键事件没有注册 这是我的代码,顺便说一句,我也在使用angular.js: var iframe = document.getElementsByTagName('iframe')[0]; var innerDoc = iframe.contentDocument || iframe.contentWindow.document; var html
var iframe = document.getElementsByTagName('iframe')[0];
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var htmlElement = innerDoc.getElementsByTagName('html')[0];
$(htmlElement).on( "keydown", function( event ) {
if(event.which === 27) {
scope.$apply(function (){
scope.closeMenu();
});
event.preventDefault();
}
});
关闭菜单功能可执行以下操作:
scope.closeMenu = function () {
$("#attrLevel").hide();
$("#paramLevel").hide();
$(".mbFirstLevel").hide();
$("#contextMenu").hide();
}
这在第一级菜单上起作用,但正如您所看到的,切换到#attrleep escape是否不再起作用。你知道为什么吗?问题在于焦点,我用$(element.focus()将一个元素集中在第二级和第三级菜单上,结果成功了