上/下点击计数器

问题描述

| 听起来很简单,我很难管理它。 简而言之,如果在按下Shift键的同时单击ID为“ Counter \”的元素,则Total包裹的int应该会上升。如果在单击时按住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>
    

解决方法

我可以看到您的问题,您想将
<span id=\"Total\">100</span>
解析为一个数字。你做不到同样,您将
#counter
的html设置为一个数字,因此您松开了
#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>
    ,您正在覆盖span标记,这就是为什么它仅在第一次单击时起作用的原因,之后没有id为Total的span标记 尝试:
$(\'#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));
        }
    });