Jquery 取消选中一个复选框上的其他复选框,但选中标记不删除
我有两个复选框,当我点击第一个div特色播放列表复选框时,另一个流行类型应该被取消选中。但这并没有发生,只有值改变了,但选中标记没有改变。谁能帮我解决这个问题 HTMLJquery 取消选中一个复选框上的其他复选框,但选中标记不删除,jquery,css,Jquery,Css,我有两个复选框,当我点击第一个div特色播放列表复选框时,另一个流行类型应该被取消选中。但这并没有发生,只有值改变了,但选中标记没有改变。谁能帮我解决这个问题 HTML @foreach ($popular as $genreTag) <li class="lib"> <label><input class="genreTag" id="{{ $genreTag->id}}" type="checkbox" name="" value
@foreach ($popular as $genreTag)
<li class="lib">
<label><input class="genreTag" id="{{ $genreTag->id}}" type="checkbox" name="" value="{{ $genreTag->name }}">{{{ $genreTag->name }}} ({{count(json_decode($genreTag->tracks, true))}}) </label>
</li>
@endforeach
@foreach ($featured as $playlist)
<li class="lib">
<label><input class="filter-playlist" id='{{{ $playlist->id}}}' tracks='{{ $playlist->tracks }}' type="checkbox" value="{{ $playlist->name}}">{{ $playlist->name}} ({{count(json_decode($playlist->tracks, true))}}) </label>
</li>
@endforeach
CSS
$('.genreTag').on('change', function (e){
$('input.filter-playlist').not(this).prop('checked', false);
});
$('.filter-playlist').on('change', function (e) {
$('input.genreTag').not(this).prop('checked', false);
});
.chk-area {
border: 2px solid #d22890;
margin: -2px 10px 0 0;
float: left;
width: 24px;
height: 24px;
border-radius: 3px;
position: relative;
}
.chk-checked {
background: #d22890;
border-color: #fff;
}
.chk-unchecked {
background: #fff;
border-color: #d22890;
}
.ch-playlist {
display: inline-block;
width: 100%;
color: #667482;
text-decoration: none;
padding: 10px 20px 10px 45px;
}
尝试在父div上使用单选按钮,即在您的案例特色播放列表中,在特定单选按钮上单击更改,取消选中所有流行类型复选框尝试在父div上使用单选按钮,即在您的案例特色播放列表中,在特定单选按钮上单击更改,取消选中所有流行类型复选框您的代码工作正常。但如果你想选择其中任何一个选项,最好使用输入型收音机。我准备了示例代码
$('input:radio')。单击(函数(){
$('input:radio:checked').addClass('active');
$('input:radio:not(:checked')).removeClass('active');
});代码>
您的代码运行正常。但如果你想选择其中任何一个选项,最好使用输入型收音机。我准备了示例代码
$('input:radio')。单击(函数(){
$('input:radio:checked').addClass('active');
$('input:radio:not(:checked')).removeClass('active');
});代码>
您的JS代码没有问题。您不需要使用not(this)
tho,因为您可以基于类名绑定change
事件
在发送有关生成的HTML的更多详细信息后,这是最终的解决方案
var $genreTags = $('input.genreTag'),
$filterPlaylist = $('input.filter-playlist');
$genreTags.on('change', function (e){
$filterPlaylist.each(function(){
var $this = $(this);
$this.prop('checked', false);
// because of generated html
$this.parent().find('> div').removeClass('chk-checked').addClass('chk-unchecked');
});
});
$filterPlaylist.on('change', function (e) {
$genreTags.each(function(){
var $this = $(this);
$this.prop('checked', false);
// because of generated html
$this.parent().find('> div').removeClass('chk-checked').addClass('chk-unchecked');
});
});
你的JS代码还可以。您不需要使用not(this)
tho,因为您可以基于类名绑定change
事件
在发送有关生成的HTML的更多详细信息后,这是最终的解决方案
var $genreTags = $('input.genreTag'),
$filterPlaylist = $('input.filter-playlist');
$genreTags.on('change', function (e){
$filterPlaylist.each(function(){
var $this = $(this);
$this.prop('checked', false);
// because of generated html
$this.parent().find('> div').removeClass('chk-checked').addClass('chk-unchecked');
});
});
$filterPlaylist.on('change', function (e) {
$genreTags.each(function(){
var $this = $(this);
$this.prop('checked', false);
// because of generated html
$this.parent().find('> div').removeClass('chk-checked').addClass('chk-unchecked');
});
});
你集成了一些复选框插件吗?哦,等等minutes@romil复选框用于多选如果您想要选择任何一个选择框,则使用输入类型radio@MehdiDehghani现在检查,长官,在回答时按下f12并放置一个断点,那么,在哪个选择器不工作的情况下,你能识别出你集成了一些复选框插件吗?哦,等等minutes@romil复选框用于多选如果您想要选择任何一个选择框,则使用输入类型radio@MehdiDehghani现在检查,长官,在回答时按下f12并放置一个断点,那么在哪一个选择器不起作用呢?那么可以确定先生,您的第一个答案是好的,我的问题是,当我在2号检查时,第一个复选框没有被移除。我认为这个问题来自jcf插件。如果你的第一个答案是好的,我的问题是,当我在2号检查时,第一个复选框没有被移除。我想这个问题来自jcf插件,你能帮我解决吗?@iAmGroot我回答了你的问题,你能帮我解决吗?@iAmGroot我回答了你的问题,