Javascript 使用“单击关闭”菜单本身关闭菜单
谈到JavaScript,我不是最好的,我一直在寻找解决方案。我在这里看到过类似的问题,但当我尝试在我的案例中实现它时,它要么破坏了菜单,要么就是没有任何区别 我试图得到一个菜单,它一次点击就打开,不仅通过重复点击父菜单选项卡来关闭,而且通过点击菜单外的任何地方来关闭 我的代码是:Javascript 使用“单击关闭”菜单本身关闭菜单,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,谈到JavaScript,我不是最好的,我一直在寻找解决方案。我在这里看到过类似的问题,但当我尝试在我的案例中实现它时,它要么破坏了菜单,要么就是没有任何区别 我试图得到一个菜单,它一次点击就打开,不仅通过重复点击父菜单选项卡来关闭,而且通过点击菜单外的任何地方来关闭 我的代码是: var toggleUpdatesPulldown = function(event, element, user_id) { if( element.className=='updates_pulldown
var toggleUpdatesPulldown = function(event, element, user_id) {
if( element.className=='updates_pulldown' ) {
element.className= 'updates_pulldown_active';
showNotifications();
} else {
element.className='updates_pulldown';
}
}
这个片段位于更多的JavaScript中间,这是默认的工作版本。“从用户单击”会更改菜单容器的类名,该类名决定是否显示菜单容器。在这里的另一篇文章中,我尝试实现以下内容,但没有成功尝试允许单击关闭来更改类名:
var toggleUpdatesPulldown = function(event, element, user_id) {
if( element.className=='updates_pulldown' ) {
element.className= 'updates_pulldown_active';
showNotifications();
} else {
element.className='updates_pulldown';
}
ev.stopPropagation();
$(document).one('click', function() {
element.className='updates_pulldown';
});
}
对解决这个问题有什么建议吗?我想学习更多的JavaScript,因为我似乎越来越多地使用它。我希望您仍然在寻找解决方案。这是一个有效的演示 我还添加了几个事件,可以在打开或关闭时使用
$('#menu>ul>li>a').on('open', function(e) {
console.log('menu open', this)
}).on('close', function(e) {
console.log('menu closed', this)
})
抱歉,这取决于jQuery。懒得编写本机版本:。同样,这并没有在IE中测试过,但如果不测试的话,要让它在IE上工作应该不会太难 欢迎光临!请做一个功能演示,以防你没有注意到。。。您有$document。单击一下。。。这应该是打开的,而不是一个。如果你真的想使用jQuery,你可以使用$.mouseleave来处理打开/关闭。@BobDavies-有一个函数,每个元素只触发一次。啊,我不知道,谢谢@JaredFarrish:
$('#menu>ul>li>a').on('open', function(e) {
console.log('menu open', this)
}).on('close', function(e) {
console.log('menu closed', this)
})