2010-01-22 69 views
2

我对js和jquery很新,所以请耐心等待。点击添加背景位置(jQuery)

我想改变背景位置和#DIV1加1%,而在#Button1的点击,并采取-1%的#DIV1同时#BUTTON2

点击我怎么可能实现这一目标jQuery中?

另外,奖金问题: 这些将通过php动态生成。是否有可能在js脚本中使用php,以便id正确?

这样的:

$i = 1 
while($i <= 5): 
$div[$i] = 'div'.$i; 
$leftbutton[$i] = 'leftbotton'.$i; 
$rightbotton[$i] = 'rightbotton'.$i; 
$i++; 
endwhile; 

否则我将不得不学习如何在JS循环为好;)

编辑:后续问题:

哪有我当我点击按钮时用这个值更新文本字段?如果我想添加向上/向下按钮,我该如何修改它?谢谢一堆!

在此先感谢! -Simon

+0

你想改变哪个坐标? (X或Y) – SLaks 2010-01-22 14:01:07

+0

实际上,对于一个页面而言,只是向左/向右,而对于另一个页面来说,单独的按钮用于向上/向下。没有提到那个原因,我认为如果我得到了第一个答案,我可以找出其余的,但现在我不再那么肯定了;) – 2010-01-22 14:51:58

回答

2

像这样:

function makeClicker(index) { 
    $('#leftbutton' + index).click(function() { 
     var bPos = $('#div' + index).css('background-position'); 
     bPos = bPos.replace(/%/g, '').split(' '); 
     bPos = (-1 + parseInt(bPos[0], 0)) + '% ' + bPos[1] + '%'; 
     $('#div' + index).css('background-position', bPos); 
    }); 
    $('#rightbutton' + index).click(function() { 
     var bPos = $('#div' + index).css('background-position'); 
     bPos = bPos.replace(/%/g, '').split(' '); 
     bPos = (1 + parseInt(bPos[0], 0)) + '% ' + bPos[1] + '%'; 
     $('#div' + index).css('background-position', bPos); 
    }); 
} 

for(var i = 1; i <= 5; i++) 
    makeClicker(i); 

编辑:修正错误。

Demo

+0

我不知道。会采取当前的价值和增加或减少(显然不是百分比,像我问,但像素)呢? – 2010-01-22 13:58:43

+0

我测试过了,它不会。等我编辑。 – SLaks 2010-01-22 14:00:18

+0

谢谢!尽管如此,仍然无法实现。这里是我想要改变样式的元素的代码: 2010-01-22 14:44:53