我试图让ul#pikame
向右移动它的相对位置IS 0,但即使位置不是0,它也会继续向右移动。
我知道li_left
在开头设置为0,它会记住并坚持下去,但我需要li_left
更新每次点击。
我的代码:
li_left = $('ul#pikame').css('left');
if (li_left == '0px') {
$('a.prev').click(function (e) {
// e.preventDefault();
$('ul#pikame').animate({
'left': '+=127'
});
e.preventDefault();
});
}
总结一下,它应该只向右移动,因为在第一次点击后,左边的位置不会是0。
答案 0 :(得分:1)
if (li_left == 0) { ...
如果查看$('ul#pikame').css('left');
返回的值,您会发现它是一个整数。你现在正在比较它的字符串文字“0px”,这是不相等的。
或者,看起来您尝试仅执行一次操作。如果是这种情况,那么您可以使用JQuery的one()
函数来执行操作 - 您猜对了 - 只需一次!
DEMO:http://jsfiddle.net/P2L5F/
$('div').one('click', function() {
$(this).animate({
'left': '+=127'
});
});
答案 1 :(得分:0)
您的情况应该在点击处理程序内,而不是在外部。
$('a.prev').click(function (e) {
li_left = $('ul#pikame').css('left');
if (li_left == '0px') {
// e.preventDefault();
$('ul#pikame').animate({
'left': '+=127'
}
e.preventDefault();
});