2010-01-22 96 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