Javascript 当我不希望函数再次运行时,如何停止它?(jquery)
我的js代码中有很多地方不正确。 当我多次单击“显示”时,方框1会不断向下移动。当我多次“隐藏”时,同样的事情也会发生在盒子2上。我该如何阻止这种情况发生 我还想补充一点,我如何使盒子在显示和隐藏时“褪色”?我似乎只有在它出现的时候才能让它工作。 另外,我不想使用切换按钮,我想使用两个按钮,因为我正在试验一些东西 这里有一个 感谢您抽出时间:) 编辑: 我得到了我想要的工作方式所有感谢你们! 你所有的答案都不是我想要的,但有了你所有的答案,我肯定能找到答案。所以非常感谢你们所有人的回答和帮助:)我真的很感激 下面是更新的JSFIDLE链接 再次感谢大家。干杯 您可以尝试:Javascript 当我不希望函数再次运行时,如何停止它?(jquery),javascript,jquery,function,web,Javascript,Jquery,Function,Web,我的js代码中有很多地方不正确。 当我多次单击“显示”时,方框1会不断向下移动。当我多次“隐藏”时,同样的事情也会发生在盒子2上。我该如何阻止这种情况发生 我还想补充一点,我如何使盒子在显示和隐藏时“褪色”?我似乎只有在它出现的时候才能让它工作。 另外,我不想使用切换按钮,我想使用两个按钮,因为我正在试验一些东西 这里有一个 感谢您抽出时间:) 编辑: 我得到了我想要的工作方式所有感谢你们! 你所有的答案都不是我想要的,但有了你所有的答案,我肯定能找到答案。所以非常感谢你们所有人的回答和帮助:)
function hideIt() {
$('#box1').hide().animate({'top': '-=155px', opacity: 0}, 500);
$('#box2').show().animate({'top': '+=155px', opacity: 1}, 500);
$('a#show').one('click', showIt);
}
function showIt() {
$('#box1').show().animate({'top': '+=155px', opacity: 1}, 500);
$('#box2').hide().animate({'top': '-=155px', opacity: 0}, 500);
$('a#hide').one('click', hideIt);
}
$(document).ready(function(){
$('a#hide').one('click', hideIt);
});
希望这对你有帮助。。别忘了检查它是否是你要找的东西….=) 我假设您一次只希望显示一个框。这是解决办法 如果你不能理解,请提一下你的疑问。我使用CSS类来实现fadein和fadeout。这是最简单的方法。尽管您可以使用
.show()
,.hide()
,.fadeOut()
,.fadeIn()
jquery函数来实现同样的功能
盒子一直向下移动的原因是你没有将它的顶部重置为0px 添加if语句,仅当框分别隐藏/显示时才执行代码。您的第一个问题是增加/减少值。。。第二,你希望另一个盒子淡出而不是隐藏。。。。
function hideIt() {
$('#box1').hide().animate({'top': '-=155px', opacity: 0}, 500);
$('#box2').show().animate({'top': '+=155px', opacity: 1}, 500);
$('a#show').one('click', showIt);
}
function showIt() {
$('#box1').show().animate({'top': '+=155px', opacity: 1}, 500);
$('#box2').hide().animate({'top': '-=155px', opacity: 0}, 500);
$('a#hide').one('click', hideIt);
}
$(document).ready(function(){
$('a#hide').one('click', hideIt);
});
$(document).ready(function(){
$('a#hide').click(function(){
$('#box1').fadeOut();
$('#box2').show().animate({'top': '155px', opacity: 1}, 500);
})
$('a#show').click(function(){
$('#box1').show().animate({'top': '155px', opacity: 1}, 500);
$('#box2').fadeOut();
})
});