is(':hidden') 在 slideToggle() 之后始终为 false
is(':hidden') always false after slideToggle()
我无法检测到 jQuery 的 slideToggle()
函数的幻灯片 up/down。
这篇文章我参考了Demo of slideToggle in Whosebug
$('#ToogleMe').click(function(e) {
e.preventDefault();
$('#toogleResult').slideToggle();
var check = $('#toogleResult').is(':hidden');
if (check == true) {
console.log('up');
} else {
console.log('down');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="button" id="ToogleMe" value="Toogle" />
<div id="toogleResult">Random Message</div>
#toogleResult
已成功切换,但变量 check
始终为 false
。这是为什么?
我的输出图像
要解决此问题,您需要在 slideToggle()
方法的 callback
参数中执行您的代码。这确保它在动画完成并且元素处于最终状态后运行。试试这个:
$('#ToogleMe').click(function(e) {
e.preventDefault();
$('#toogleResult').slideToggle(function() {
var check = $('#toogleResult').is(':hidden');
if (check) {
console.log('up');
} else {
console.log('down');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="ToogleMe" value="Toogle" />
<div id="toogleResult">Random Message</div>
我无法检测到 jQuery 的 slideToggle()
函数的幻灯片 up/down。
这篇文章我参考了Demo of slideToggle in Whosebug
$('#ToogleMe').click(function(e) {
e.preventDefault();
$('#toogleResult').slideToggle();
var check = $('#toogleResult').is(':hidden');
if (check == true) {
console.log('up');
} else {
console.log('down');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="button" id="ToogleMe" value="Toogle" />
<div id="toogleResult">Random Message</div>
#toogleResult
已成功切换,但变量 check
始终为 false
。这是为什么?
我的输出图像
要解决此问题,您需要在 slideToggle()
方法的 callback
参数中执行您的代码。这确保它在动画完成并且元素处于最终状态后运行。试试这个:
$('#ToogleMe').click(function(e) {
e.preventDefault();
$('#toogleResult').slideToggle(function() {
var check = $('#toogleResult').is(':hidden');
if (check) {
console.log('up');
} else {
console.log('down');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="ToogleMe" value="Toogle" />
<div id="toogleResult">Random Message</div>