我正在根据点值组合技能列表,当我查看点值时,我想要闪烁一条消息并取消选中他们选择的框。我一直在尝试使用.prop(“checked”,false),但如果没有明确说明取消选中哪个复选框,我似乎无法使其工作。我想用他们刚检查的那个。
我曾尝试过使用和不使用checkboxradio(刷新)
http://jsfiddle.net/mattcushing/K5szE/7/
function calculateTotal() {
var curr = starting;
var checked = $("input:checked").each(function (item) {
curr -= +($(this).prev(".amt").text());
});
if(curr < 0){
alert("Please change your options, you can't have a negative value");
$(this).prop("checked", false).checkboxradio("refresh");
}
else{
$("#remaining").text(curr);
}
答案 0 :(得分:1)
您正在使用this
关键字脱离上下文。尝试从calculateTotal()
返回值,并在事件处理程序中使用this
关键字。
$("input[type=checkbox]").click(function () {
changeCostRogue();
changeCostWarrior();
changeCostMage();
var curr = calculateTotal();
if(curr < 0){
alert("dude, no negatives!");
$(this).prop("checked", false).checkboxradio("refresh");
}
else{
$("#remaining").text(curr);
}
});
function calculateTotal() {
var curr = starting;
var checked = $("input:checked").each(function (item) {
curr -= +($(this).prev(".amt").text());
});
return curr;
}
答案 1 :(得分:0)
您所要做的就是将this
发送到您的calculateTotal函数
calculateTotal(this);
并改变你的功能签名,如
function calculateTotal(this) {