2

私はjsとjqueryにかなり慣れていないので、我慢してください。

背景の位置を変更して、#button1をクリックしながら#div1に1%を追加し、#button2をクリックしながら#div1に-1%を追加したいと思います。

jQueryでこれをどのように達成できますか?

また、ボーナスの質問:これらはphpを介して動的に生成されます。js-scriptでphpを使用して、IDが正しくなるようにすることは可能ですか?

このような:

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

それ以外の場合は、jsでループを作成する方法も学ぶ必要があります;)

編集:フォローアップの質問:

ボタンをクリックしたときに、この値でテキストフィールドを更新するにはどうすればよいですか?また、上/下ボタンも追加したい場合は、どうすれば変更できますか?本当にありがとう!

前もって感謝します!-サイモン

4

1 に答える 1

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

編集:間違いを修正しました。

デモ

于 2010-01-22T13:54:28.273 に答える