当多个复选框中的任何一个的“已选中”状态发生更改时,我需要触发一个事件,并且不要通过监听 click来执行此操作。为什么?
它看起来像这样:
BUILD YOUR SUNDAE!
All Flavors [] Chocolate [ ] Vanilla [ ] Strawberry [ ] Pistacchio [ ]
单击 All Flavors 时,所有其他复选框都设置为选中:
function checkAllFlavors() {
$("#flavorFilterContainer input.flavor-filter").each(function (i, elem) {
$(elem).prop('checked', true);
});
}
上面的功能明显有效——所有的复选框都被选中。但是,如果我像这样监听状态变化:
("#flavorFilterContainer input.flavor-filter").live('change', function () {
DispenseFlavor()
});
DispenseFlavor() 方法仅在我物理单击复选框时调用,而不是在 checkAllFlavors() 函数中通过将 checked 属性设置为 true 来更改复选框的选中状态时调用。
复选框的更改状态是否仅通过 GUI 交互而不是通过设置属性来改变$(elem).prop('checked', true)
?