jquery - 制作单个选项选择/取消选择列表

标签 jquery list select toggle

我想制作元素列表,您可以在其中仅选择一个选项并取消选择此选项并查看原始元素列表。我希望能够选择其他元素,而无需先取消选择当前选定的选项。我希望这一切都有道理。

HTML

<ul id="mylist">
    <li>Element 1</li>
    <li>Element 2</li>
    <li>Element 3</li>
    <li>Element 4</li>
    <li>Element 5</li>
    <li>Element 6</li>
</ul>

jQuery

$('#mylist').on('click', 'li', function () {
    $('#mylist li').removeClass('selected');
    $('#mylist li').addClass('not-selected');
    $(this).removeClass('not-selected');
    $(this).addClass('selected');
    $(this).click(function () {
        $('#mylist li').removeClass('selected');
        $('#mylist li').removeClass('not-selected');
    });
});

CSS

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

ul li {
    float: left;
    display inline-block;
    width: 100px;
    height: 100px;
    border: 1px solid black;
    margin: 0 10px 10px 0px;
}

ul li.selected {
    background-color: #f535d7;
}

ul li.not-selected {
    background-color: #bbb;
    opacity: .2;
}

这就是我走了多远:http://jsfiddle.net/vaidasb/rMRgF/5/

最佳答案

将您的 JavaScript 更改为:

$('#mylist').on('click', 'li', function () {
    if ($(this).hasClass('selected'))
    {
        $(this).removeClass('selected');
        $('#mylist li').removeClass('not-selected');        
    }
    else
    {
        $('#mylist li').removeClass('selected').addClass('not-selected');
        $(this).removeClass('not-selected').addClass('selected');
    }
});

关于jquery - 制作单个选项选择/取消选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19710360/

相关文章:

mysql - 需要有关 4 个表的 SQL 查询的帮助

php - 简单的 MySQL 语法错误

SQL 查询。如何选择 signup_date 为周六或周日的所有用户?

c# - 在 ASP.NET 中检测关闭浏览器

javascript - 在 HTML : Uncaught TypeError: data. forEach 中使用 JSON 文件不是函数

javascript - 有没有一种方法可以获取在 Javascript 中从哪个页面重定向的页面名称

python - 如何链接变量?龙

javascript - 如果用户不接受 JS 确认消息,如何检查先前选择的单选按钮?

list - 在 flutter 列表中使用 future 对象的数据

list - lisp 中列表元素的两个元素组合(没有重复项)