如果声明(按钮未单击)

时间:2017-02-04 13:14:43

标签: 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 === 0 && button.data('clicked') == false) {
        container.hide();
    }
});

但问题似乎在于:

button.data('clicked') == false)

如何正确编写此代码?

日Thnx!

2 个答案:

答案 0 :(得分:0)

您需要使用$(button).data('clicked')而不是button.data('clicked')因为button将包含$('.menu-button').data('clicked', true);

返回的jquery对象
$(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));