Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript If语句(未单击按钮)_Javascript_Jquery_If Statement_Click - Fatal编程技术网

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));