jQuery复选框启用禁用
我有一个关于复选框启用和禁用的问题。jQuery复选框启用禁用
如果选中复选框,则应禁用“个人培训”。
但我不能这样做
$('#optionen :checkbox').on('change', function() {
$('.menu li.' + this.className).toggleClass('hide');
});
你能帮帮我吗?
在此先感谢
$('#optionen :checkbox').on('change', function(){
这意味着“找到#optionen
,然后发现是它的后代任何复选框”。这个发现这个元素:
<input type="checkbox">
然后你绑定一个事件处理程序到这个元素。在事件处理程序中,this
指向元素。事件处理程序查找元素的className
属性。没有class
属性集,所以className
是一个空字符串。您的代码,因此有效地看起来是这样的:
$('.menu li.').toggleClass('hide');
这显然是无效的选择,所以有一个错误,没有任何反应。
我不确定你的解决方案是什么;这可能是因为添加class
属性您input
元素一样简单:
<input type="checkbox" class="leaf">
$('#optionen :checkbox').on('change', function(){
$('.menu li').toggleClass('versteckt');
});
这是你想要的吗?
<input type="checkbox" id="optionen">
您没有该复选框的类或ID。我想你想要复选框的“optionen”的ID。然后你也想删除对类的引用,除非你想在复选框中添加一个类。
你有两个明显的解决方案,第一个给input
的leaf
类:
<span><input class="leaf" type="checkbox" />SERVICES</span>
二是纠正HTML(对于ul
(或ol
)是li
的只有有效的子元素):
<div id="optionen">
<ul>
<li><span><input type="checkbox" />SERVICES</span>
<ul class="menu">
<li class="first leaf"><a href="/site/personal_training">PERSONAL TRAINING</a>
</li>
<li class="leaf"><a href="/site/personal_training">PERSONAL TRAINING</a>
</li>
<li class="leaf"><a href="/site/personal_training">PERSONAL TRAINING</a>
</li>
</ul>
</li>
</ul>
</div>
然后用:
$('#optionen :checkbox').on('change', function() {
$(this).closest('li').find('ul.menu li').toggleClass('versteckt');
});
参考文献:
感谢这对我很有帮助 – aldimeola1122 2013-03-19 17:19:29
@ aldimeola1122 if this answer解决您的问题,请点击左侧的检查标记它 – snumpy 2013-05-29 15:40:49
但是你的复选框没有'class'属性... – Anujith 2013-03-19 16:57:53
你认为'this.className'是什么? – j08691 2013-03-19 16:58:36
添加以下行:alert(this.className); – 2013-03-19 16:59:13