这是我的代码:
HTML:
<div id="a">
aaa
</div>
<div id="b">
<button>hide aaa</button>
</div>
<a href="#">link</a>
JS:
if($('#a:visible').length > 0) {
$('a').click(function() {
alert('a');
});
}
$('button').click(function () {
$('#a').hide();
});
如果我点击“隐藏aaa”,然后点击该链接,则会显示警报。当#a被隐藏时,我不想显示警报。如何更改我的代码?
答案 0 :(得分:2)
内而外。您必须在点击发生时检查的可见性。
$('a').click(function() {
if ($('#a:visible').length > 0) {
alert('a');
}
});
$('button').click(function() {
$('#a').hide();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="a">
aaa
</div>
<div id="b">
<button>hide aaa</button>
</div>
<a href="#">link</a>
JS:
&#13;
答案 1 :(得分:1)
我让它将你的状况改变到click事件中,如下所示:
$('a').click(function() {
if($('#a:visible').length > 0) {
alert('a');
}
});
$('button').click(function () {
$('#a').hide();
});
答案 2 :(得分:1)
这是另一种做法!您可以使用$(element).is(":visible")
检查元素的可见性。
$('a').click(function() {
if($('#a').is(":visible")) {
alert('a');
}
});
$('button').click(function () {
$('#a').hide();
});