如果单击选中的列表项,请防止取消选中
If click on checked list item prevent uncheck
我想要的是,当列表项被选中,并且您单击选中的项时,您不能取消选中它们。
感谢您的帮助:)
$(".collectioncontainer ul li").click(function(){
$('.collectioncontainer ul li.checked').not(this).removeClass('checked');
$(this).toggleClass('checked');
})
使用.hasClass()
检查单击元素上是否存在类是没有意义的。使用.addClass()
,因为您只想添加类:
$(".collectioncontainer ul li").click(function(){
$('.collectioncontainer ul li.checked').not(this).removeClass('checked');
$(this).addClass('checked');
});
如果您只需要事件处理程序一次性执行某项操作,那么有一种方法很有用:
$(".collectioncontainer ul li").one('click', function() {
$(this).addClass('checked');
})
使用addClass
可以明确表示您只希望操作包含一个类,并且可以防止意外地使用toggleClass
删除该类。
您可以尝试使用hasClass
方法进行检查:
$(".collectioncontainer ul li").click(function(){
if( !$( this ).hasClass( 'checked' ) ) {
$( this ).addClass( 'checked' );
}
});
只是简单地不删除该类。
$(document).ready(function() {
$('li').click(function() {
$(this).addClass('checked');
});
});
li.checked {
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>a</li>
<li>a</li>
<li>a</li>
<li>a</li>
</ul>
如果您只想第一次选中复选框并防止它们被取消选中,请使用事件侦听器:
<input id="checkbox" type="checkbox" name="bob" value="I'm bob">
<script type="text/javascript">
var c=document.getElementById("checkbox");
c.addEventListener("click",function(event_){
this.checked=true;
});
</script>
我知道你在使用JQuery,但我相信你可以很容易地看到普通JavaScript的作用,这个概念应该是正确的。我不太擅长JQuery,但我认为您使用的是点击事件侦听器。希望这能有所帮助!
相关文章:
- (取消)使用单独的复选框激活复选框列表
- 取消选择滚动启动时的所有列表视图项目
- 单击列表项时取消下拉列表
- 下拉列表单选取消选择
- 在复选框取消选中事件中从HTML下拉列表中删除项目
- 如果单击选中的列表项,请防止取消选中
- jQuery多选列表框,其中“无”选项取消选择所有其他选项
- 用于清除/取消选择单选按钮列表中的项目的 Javascript
- 用于检查和取消选中复选框列表控件检测的 Javascript
- 列表查看(如果选中复选框)和下拉列表选定值 = X 然后警报 + 取消选中
- 如何使用angularjs根据复选框检查和取消选中来制作chckbox列表
- 在选择其他项目时从列表中取消选择
- 如何取消选中复选框,即使列表中的一个复选框未选中
- 用程序取消隐藏sencha中列表中的项目
- 单击特定列表项后,取消引导程序下拉菜单上的隐藏事件
- 浏览器刷新时,JQuery多选复选框下拉列表未被取消选中
- 选中/取消选中列表中的所有复选框
- 在复选框列表中勾选/取消勾选所有项目时的奇怪行为
- Javascript文件从下拉列表中取消绑定,需要重新绑定
- 如何从列表中选中/取消选中所有复选框