javascript - 单击另一个列表项时取消选择列表项
问题描述
我希望能够在单击另一个列表项时取消选择一个列表项,同时我希望能够以与选择标签相同的方式选择多个列表项,即单击并按住多个列表项目以及移位点击。
目前,我已经设置好它,以便我可以选择一个列表项并更改属性值和背景颜色。
Javascript:
function selectLi(el)
{
if ($(el).css( "background-color" )=="rgb(204, 204, 204)")
{
$(el).css( "background-color", "white");
$(el).attr('selected',false);
}
else
{
$(el).css("background-color", "#ccc");
$(el).attr('selected',true);
}
}
我的列表项正在自动生成:
$('#unorderedRight').append('<li value="' + $(this).val() + '" onclick="selectLi(this)" selected=false><input type="checkbox" id="'+ $(this).text()+'_checkbox">'+$(this).text()+'</li>');
目前,如果选择了一个列表项,并且用户选择了另一个列表项,则第一个选择的列表项不会被取消选择(正如此代码所预期的那样)。我不确定从哪里开始
解决方案
答案是循环遍历无序列表中的 selected 属性 = selected 的所有元素,并检查以确保您当前正在查看的元素与您刚刚单击的元素不同。
function selectLi(el)
{
console.log("addtoright");
if ($(el).css( "background-color" )=="rgb(204, 204, 204)"){
$(el).css( "background-color", "white");
$(el).attr('selected',false);
}
else {
$(el).css("background-color", "#ccc");
$(el).attr('selected',true);
$("#unorderedRight li").each(function(i, obj)
{
if($(obj).attr('selected') == 'selected' && obj !== el)
{
$(obj).attr('selected', false);
$(obj).css( "background-color", "white");
}
});
}
}
推荐阅读
- android - 如何在 Ionic 应用程序中设置 Android 构建版本?
- python - ModuleNotFoundError:没有名为“bs4”的模块 [BeautifulSoup]
- java - 如何在 JOptionPane.showInputDialog 中添加变量
- angular - 仅在构建中导入 Angular 材料时出错
- javascript - 加载jsp页面耗时过长
- documentum - 如何使用 Documentum 中的 DQL 获取文件柜中已删除的文档列表?
- github - 使用 Heroku 部署的 Jhipster 应用程序,但在连接到 github 构建后未触发
- javascript - 如何将数组中相邻的数字组合成单个数字并返回一个包含“5”、“6”、“7”、“8”、“9”、“10”、“11”的数组?
- amazon-web-services - AWS S3 选择获取名称中带有 / 的列的数据
- pandas - 未与 X 轴刻度对齐的条形和散景图中的第一个条形截止