Добавление суммы в background-position по клику (jQuery) - PullRequest
2 голосов
/ 22 января 2010

Я довольно новичок в js и jquery, поэтому, пожалуйста, потерпите меня.

Я бы хотел изменить положение фона и добавить 1% к # div1, нажимая на кнопку # button1, и взять -1% на # div1 при нажатии на кнопку # button2

Как я могу добиться этого в jQuery?

Alse, бонусный вопрос: Они будут генерироваться динамически через php. Можно ли использовать php в js-скрипте, чтобы идентификатор был правильным?

как это:

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

Иначе мне придется научиться делать петли и в js;)

Редактировать: Следить за вопросами:

Как я могу обновить текстовое поле с этим значением, когда я нажимаю кнопки? И как я могу изменить его, если я хотел бы также добавить кнопки вверх / вниз? огромное спасибо!

Заранее спасибо! -Simon

1 Ответ

2 голосов
/ 22 января 2010

Как это:

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);

РЕДАКТИРОВАТЬ : исправлены ошибки.

Демо

...