jQuery toggleClass并选中复选框
我似乎无法让这个工作。 如果我删除脚本的复选框部分,切换类可以工作,但如果我添加它,那么它不再切换该类。 我是一名业余爱好者,所以我非常感谢任何帮助。 我正在使用jQuery版本1.4.1。 谢谢。
$("li.imprint").click(function() { $(this,"li.imprint").toggleClass('selected').children("input[@type=checkbox]")[0].click(); });
所以基本上我正在构建一个Web表单供人们自定义笔。 所以他们需要选择他们想要的颜色印记。 我想要展示一个颜色的样本,而不仅仅是一个无聊的颜色列表。 所以我想我会创建一个列表,放一些复选框,这样他们就可以选择颜色并使用CSS来隐藏实际的复选框,这样它就很好又干净。 我看到了为单选按钮完成此操作的代码,我的工作正常。 我试图将它改编为复选框,但问题是你只能选择一个单选按钮而是多个复选框。
给你一个半function的例子。 如果您前往测试网站,它是现场(我不知道这是一个很好的做法),并尝试自定义笔,你可以看到我正在尝试做什么。 Pensfast.com Beta
鉴于您的更新详细信息,这是您想要的:
$("li.imprint").click(function(){ var $checkbox = $(this).toggleClass('selected').find(':checkbox'); if($(this).hasClass('selected')) { $checkbox.attr('checked','checked'); } else { $checkbox.removeAttr('checked'); } })
我担心你的课程不正确。 您在问题中引用了li.imprint
,但我在您网站上访问的页面上有li.Barellimprint
类。显然,如果选择器错误,这个答案将不起作用。 尝试将第一行更改为:
$("li.Barrelimprint").click(function(){
这段代码可以在这个页面上运行 。
这对我有用 – 它还可以容纳多个复选框,每个复选框都可以具有不同的初始状态。
CSS:
.dragable { margin: 4px; border: 1px solid #c6e1ff; line-height: 15px;} .dragable.selected, .dragable.unselected.selected {background: #ebf5ff;} .dragable.unselected {background: #ffffff;}
HTML:
- Results
- Benefits
Javascript:
希望这可以帮助!
尝试:
$("li.imprint").click(function() { $(this,"li.imprint").toggleClass('selected') .children("input:checkbox:first").attr('checked',true); });
我可以问你为什么要在复选框上点击“点击”?
如果您想选中或取消选中复选框,请阅读此内容 。
更新
试试这个:
$("li.imprint").click(function() { $(this).toggleClass('selected') $(':checkbox',this).attr('checked',$(this).is('selected')); });