单击以显示无条件/阻止条件

时间:2014-03-30 01:42:26

标签: jquery html conditional

我不知道为什么其他条件不起作用,我尝试了多种方法。

if($('hiddendDiv').attr('style') === 'display:none') {
    $('buttonDiv').click(function() {
        $('hiddendDiv').attr('style',"display:block");
    }); 
} else {
    $('body').click(function(){
        $('hiddendDiv').attr('style',"display:none");
    });
}

hiddendDivstyle="display:none"

当我点击buttonDiv时,hiddenDiv获取display: block,然后点击页面上的任意位置(关闭hiddenDiv),{{1没有hiddenDiv

我正在尝试点击按钮时打开display: none,点击页面上任意位置时关闭。

2 个答案:

答案 0 :(得分:3)

buttonDivhiddendDiv(希望)不是标记名称;如果您有包含这些ID的元素,则需要使用前导#选择它们。此外,请不要检查或更改此类可见性。

if ($('#hiddendDiv').is(':visible')) {
    $('body').click(function () {
        $('#hiddendDiv').hide();
    });
} else {
    $('#buttonDiv').click(function () {
        $('#hiddendDiv').show();
    });
}

如果您不重新运行此代码,则不会为您更改处理程序。我会这样做:

$('body').click(function () {
    $('#hiddendDiv').hide();
});

$('#buttonDiv').click(function (e) {
    $('#hiddendDiv').show();
    e.stopPropagation();
});

即。只要点击任意位置,就可以隐藏#hiddendDiv,但请停止该监听器的激活,并在点击#hiddendDiv时显示#buttonDiv

答案 1 :(得分:0)

$(document).on('click', '#test', function () {
    if ($('#text').hasClass("disabled")) {
        $('#text').css("display", "none");
        $('#text').removeClass('disabled');
    }
    else
    {
        $('#text').css("display", "block");
        $('#text').addClass('disabled');
    }

});