单击侧边栏按钮时代码始终运行。它只是在每次向右移动时不断增加260px。但它应该在第一次点击后停止。
$(document).ready(function() {
if ($('#sidebar').css('left') === '-260px') {
$('#btnsidebar').click(function() {
$('#sidebar').animate({left: '+=260',}, 1000);
});
$('#btnsidebar').click(function() {
$('#btnsidebar').animate({left: '+=260',}, 1000);
});
}
});
答案 0 :(得分:1)
$(document).ready(function() {
$('#btnsidebar').click(function() {
if ($('#sidebar').css('left') === '-260px') { // put if block inside the event
$('#sidebar').animate({left: '+=260',}, 1000);
$('#btnsidebar').animate({left: '+=260',}, 1000); // you are not required to add another click function for doing this
}
});
});
答案 1 :(得分:0)
将if
移至点击处理程序正文:
$('#btnsidebar').click(function() {
if ($('#sidebar').css('left') === '-260px')
$('#btnsidebar').animate({left: '+=260',}, 1000);
});
答案 2 :(得分:0)
您可以有条件地添加这些事件处理程序,但事件处理程序中的操作(动画)是无条件的。在事件处理程序中添加适当的条件(您可以复制它)。
答案 3 :(得分:0)
你需要把你的if语句放在里面。
$('#btnsidebar').live('click', function() {
if ($('#sidebar').css('left') === '-260px') {
$('#sidebar').animate({
left: '+=260',
}, 1000);
}
});