Счетчик кликов вверх / вниз - PullRequest
0 голосов
/ 16 апреля 2011

Удивительно просто, как бы это ни звучало, у меня трудности с этим.

Проще говоря, если я щелкну элемент с идентификатором «Counter», пока нажата клавиша Shift, int, обернутый Total, должен пойти вверх. Если при нажатии удерживается alt, он гаснет.

$('#Counter').click(function(x) {
    if(x.altKey) {
        $('#Counter').html(parseInt($('#Total').html())-1);
    }
    if (x.shiftKey) {
        $('#Counter').html(parseInt($('#Total').html())+1);
    }
});

///////////

<div id="Counter"><span id="Total">100</span></div>

Ответы [ 2 ]

2 голосов
/ 16 апреля 2011

Я вижу вашу проблему, вы хотите разобрать <span id="Total">100</span> в число.Вы не можете сделать это.Также вы устанавливаете html #counter на число, и поэтому теряете #Total.

То, что вы хотите, это:

$('#Counter').click(function(x) {
    if(x.altKey) {
        $('#Counter').html(parseInt($('#Counter').html())-1);
    }
    if (x.shiftKey) {
        $('#Counter').html(parseInt($('#Counter').html())+1);
    }
});

<div id="Counter">100</div>
1 голос
/ 16 апреля 2011

Вы перезаписываете тег span, поэтому он работает только при первом щелчке, после этого тега span с идентификатором Total

Try:

$('#Counter').click(function (x) {

        if (x.altKey) {
            $('#Counter').html('<span id="Total">' + (parseInt($('#Total').html()) - 1) + '</span>');

        }
        if (x.shiftKey) {
            $('#Counter').html('<span id="Total">' + (parseInt($('#Total').html()) + 1) + '</span>');
        }
    });

илиеще лаконичнее:

$('#Counter').click(function (x) {

        if (x.altKey) {
            $('#Total').html((parseInt($('#Total').html()) - 1));

        }
        if (x.shiftKey) {
            $('#Total').html((parseInt($('#Total').html()) + 1));
        }
    });
...