我有以下代码,我需要显示或隐藏面板。我的问题是,show()仅适用于替代点击。
var allPanels = $(".panel");
allPanels.hide(2000);
allPanels.show();
我想知道show()不能始终如一地工作的原因。
答案 0 :(得分:1)
由于您在<div class="panel" >This is a DIV</div>
<button type="button" class="buttonClick" >Click me</button>
中设置了时间,因此无效。你必须按照以下方式编写::
<强> HTML 强>
$(document).ready(function (e) {
$(document).on('click', '.buttonClick', function () {
var allPanels = $(".panel");
allPanels.hide(2000, function(){
allPanels.show();
});
});
});
<强> JQUERY 强>
os.makedirs
答案 1 :(得分:0)
更简单的方法是在你开始另一个动画之前 .stop()当前动画。
today = 0
tomorrow = 24
availabilities = {
monday: [
{ start_time: today + 6,
end_time: today + 12 },
{ start_time: today + 8,
end_time: today + 18 }
],
tuesday: [
{ start_time: tomorrow + 10,
end_time: tomorrow + 16 },
{ start_time: tomorrow + 18,
end_time: tomorrow + 23 }
]
}
availabilities = availabilities.map do |day, avails|
[ day,
avails.map do |avail|
(avail[:start_time]..avail[:end_time])
end
]
end.to_h
# {:monday=>[6..12, 8..18], :tuesday=>[34..40, 42..47]}
这样您就不必将代码放在回调中。 请注意,这样做会明确地暂停动画忽略其当前状态。
答案 2 :(得分:0)
当我从
中删除动画时序时var allPanels = $(".panel");
allPanels.hide(2000);
allPanels.stop().show();
已更改为
var allPanels = $(".panel");
allPanels.hide();
allPanels.stop().show();`enter code here`
它开始工作了。隐藏和显示无缝地工作。谢谢。但有人可以说为什么隐藏和显示时间不起作用。