Jquery移动与淘汰复选框无法正常工作

时间:2013-09-18 08:47:11

标签: javascript jquery-mobile knockout.js checkbox

我有一个复选框,需要在合法选择之前选中另一个复选框。如果选中该复选框是非法的,我想取消选中它。代码如下:

if (self.Advances()[i].Bought()) { 
    break;
} else {
    advance.Bying(false);
    $("#" + advance.Id).checkboxradio('refresh');
    return;
}

检查敲除对象和DOM时,当上面的其他命中时,正确地不设置值和复选框。然而,GFX并没有过时,因此仍然可以检查复选框。

经过实验后我发现在刷新行中引入javascript错误实际上导致一切按预期工作(这是意料之外的)IE以下工作:

if (self.Advances()[i].Bought()) { 
    break;
} else {
    advance.Bying(false);
    //parent is not a check box, so error is thrown. 
    $("#" + advance.Id).parent().checkboxradio('refresh'); 
    return;
}

这让我相信JQM是以错误的顺序触发的(IE是我在上面手动执行的刷新是在鼠标事件刷新之前触发的)

所以我使用setTimeout结束了以下(工作但不优雅)的解决方案:

if (self.Advances()[i].Bought()) { 
    break;
} else {
    setTimeout(function () {
        advance.Bying(false);
        $("#" + advance.Id).checkboxradio('refresh');
    }, 250);
    return;
}

我的问题是,无论如何我可以强制JQM以正确的顺序刷新?或者这是JQM中的错误还是我不了解JQM如何工作?

编辑:整个代码(和网站)可以在civ.testmaskin.com上找到

0 个答案:

没有答案