Javascript If语句(未单击按钮)
如果在元素外部单击某个元素,我想隐藏该元素。但如果单击菜单按钮,则无法关闭 现在我有以下代码:Javascript If语句(未单击按钮),javascript,jquery,if-statement,click,Javascript,Jquery,If Statement,Click,如果在元素外部单击某个元素,我想隐藏该元素。但如果单击菜单按钮,则无法关闭 现在我有以下代码: $(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
$(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 您需要使用$(按钮)。数据('clicked')
而不是按钮。数据('clicked')
作为按钮将包含由$('.menu button')返回的jquery对象。数据('clicked',true)代码>
你应该替换
var button = $('.menu-button').data('clicked', true);
与
尝试console logging button.data('clicked'),查看它是字符串还是布尔值-如果您想知道单击了什么,请查看e.target-如果很难理解您试图实现的目标,请在测试之前停止将clicked设置为true,但我看到的是您一直将数据设置为clicked,所以不可能是错误的,你有机会检查答案了吗。如果你遇到任何问题,请告诉我
var button = $('.menu-button').data('clicked', true);
var button = $('.menu-button').data('clicked', button.is(e.target));