这是关于多个复选框使用JQuery选择/取消选择的问题: http://viralpatel.net/blogs/multiple-checkbox-select-deselect-jquery-tutorial-example/
具有从列表中选择多个项目来处理它们的功能。在线演示位于: http://viralpatel.net/blogs/demo/jquery/multiple-checkbox-select-deselect/jquery-select-multiple-checkbox.html
我已经将演示扩展到包含多个组,并且已经使示例JQuery JavaScript功能适用于一个案例,即BlackBerry案例。工作代码位于http://jsfiddle.net/jLx5z99q/3/。
在其中,这是我想要概括的专门功能:
$(function () {
$("#BlackBerry").click(function () {
$('.case_blackberry').attr('checked', this.checked);
});
$(".case_blackberry").click(function () {
if ($(".case_blackberry").length == $(".case_blackberry:checked").length) {
$("#BlackBerry").attr("checked", "checked");
} else {
$("#BlackBerry").removeAttr("checked");
}
});
});
我想概括它,以便"#BlackBerry"
和".case_blackberry"
是函数的两个参数,因此我可以多次调用它来覆盖其他组。
我不是JavaScript开发人员。请帮忙。
更新:
我已在http://pastie.org/10278464发布了完整的html源代码。
此外,仅供参考,这个完整工作的html源代码由easygen this模板自动生成。这个html测试代码是我编写easygen的原因,使我可以轻松编写任何测试用例,无论我喜欢什么样的方式。希望它也能帮助别人。
由于
答案 0 :(得分:1)
这可行:
function bindMulti( parent, children ) {
parent.click(function () {
children.attr('checked', this.checked);
});
children.click(function () {
if (children.length == children.filter(':checked').length) {
parent.attr("checked", "checked");
} else {
parent.removeAttr("checked");
}
});
};
像这样使用:
bindMulti($('#select_all'),$('.children'));
bindMulti($('#BlackBerry'),$('.case_blackberry'));
答案 1 :(得分:1)
您需要定义一些特定的属性。
试试这个小提琴。
boost::bind(&client::handle_resolve, this,
boost::asio::placeholders::error,
boost::asio::placeholders::iterator,
boost::ref(resp)));
^^^^^^^^^^^^^^^^^
:http://jsfiddle.net/iboylmz/2acnLzzw/3/
答案 2 :(得分:0)
维护当前的代码逻辑和流程以及元素标识,您可以这样做:
$(function () {
$(".case_subgroup_all").click(function () {
$('.case_'+$(this).attr('id').toLowerCase()).attr('checked', this.checked);
});
$(".case_blackberry").click(function () {
if ($(".case_blackberry").length == $(".case_blackberry:checked").length) {
$("#BlackBerry").attr("checked", "checked");
} else {
$("#BlackBerry").removeAttr("checked");
}
});
});
我还在{check all'复选框中添加了case_subgroup_all
,以便调用您的事件处理程序。
jsfiddle:http://jsfiddle.net/jLx5z99q/5/