问题描述
|
听起来很简单,我很难管理它。
简而言之,如果在按下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));
}
});