如果元素在元素外部单击,我想要隐藏元素。但是,如果单击菜单按钮,则无法关闭。
现在我有以下代码:
$(document).mouseup(function test (e) {
var button = $('.menu-button').data('clicked', true);
var container = $(".sf-menu");
if (!container.is(e.target) && container.has(e.target).length === 0 && button.data('clicked') == false) {
container.hide();
}
});
但问题似乎在于:
button.data('clicked') == false)
如何正确编写此代码?
日Thnx!
答案 0 :(得分:0)
您需要使用$(button).data('clicked')
而不是button.data('clicked')
因为button
将包含$('.menu-button').data('clicked', true);
$(document).mouseup(function test (e) {
var button = $('.menu-button').data('clicked', true);
var container = $(".sf-menu");
if (!container.is(e.target) && container.has(e.target).length === 0 && $(button).data('clicked') == false) {
container.hide();
}
});
答案 1 :(得分:0)
你应该替换
var button = $('.menu-button').data('clicked', true);
与
var button = $('.menu-button').data('clicked', button.is(e.target));