我不知道为什么其他条件不起作用,我尝试了多种方法。
if($('hiddendDiv').attr('style') === 'display:none') {
$('buttonDiv').click(function() {
$('hiddendDiv').attr('style',"display:block");
});
} else {
$('body').click(function(){
$('hiddendDiv').attr('style',"display:none");
});
}
hiddendDiv
有style="display:none"
当我点击buttonDiv
时,hiddenDiv
获取display: block
,然后点击页面上的任意位置(关闭hiddenDiv
),{{1没有hiddenDiv
。
我正在尝试点击按钮时打开display: none
,点击页面上任意位置时关闭。
答案 0 :(得分:3)
buttonDiv
和hiddendDiv
(希望)不是标记名称;如果您有包含这些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');
}
});