似乎无法删除课程"已选择"何时单击新的LI值

时间:2015-10-28 18:35:06

标签: javascript jquery

我需要你的帮助,

如何修改javascript代码,以便之前的选择是谁将拥有css类"选择"关联它,在选择新值时删除?

这是我的问题的照片: enter image description here

这是一个快速的小提琴:http://jsfiddle.net/ubntpd9f/

有问题的代码:

$(document).ready(function() {

    $(".dropdown dt a").click(function() {
        $(".dropdown dd ul").toggle();
    });

    $(".dropdown dd ul li a").click(function(e) {
        var text = $(this).html();

            $(this).removeClass('selected')
            $(this).addClass('selected');
            $(".dropdown dd ul").hide();


    });

    function getSelectedValue(id) {
        return $("#" + id).find("dt a span.value").html();
    }

    $(document).bind('click', function(e) {
        var $clicked = $(e.target);
        if (! $clicked.parents().hasClass("dropdown"))
            $(".dropdown dd ul").hide();
    });


});

3 个答案:

答案 0 :(得分:4)

从所有人中删除.selected,然后将其添加到新帐户:

$(".dropdown dd ul li a").click(function (e) {
    var text = $(this).html();
    $(".dropdown dd ul li a").removeClass('selected');
    $(this).addClass('selected');
    $(".dropdown dd ul").hide();
});

答案 1 :(得分:0)

我无效,因为您在.selected类之后删除并添加。 $(this).removeClass('selected') $(this).addClass('selected');

当只有一个人选择了.selected类时,为什么要删除.selected。 找到哪个有.selected类然后删除它。然后将.selected添加到刚刚被选中的那个。

$(document).ready(function() {
            var dropdown = $(".dropdown");
            $(".dropdown dt a").click(function() {
                $(".dropdown dd ul").toggle();
            });

            $(".dropdown dd ul li a").click(function(e) {

                var text = $(this).html();

                if (e.ctrlKey) {

                    $(this).addClass('selected');

                }
                else {

                    $('.selected', dropdown).removeClass('selected');
                    $(this).addClass('selected');
                    $(".dropdown dd ul").hide();

                }

            });

            function getSelectedValue(id) {
                return $("#" + id).find("dt a span.value").html();
            }

            $(document).bind('click', function(e) {
                var $clicked = $(e.target);
                if (! $clicked.parents().hasClass("dropdown"))
                    $(".dropdown dd ul").hide();
            });


        });

答案 2 :(得分:0)

虽然我建议您重构一下您的构建方式,但为了使用您当前使用的代码解决问题,请在$(".dropdown dd ul li a").removeClass('selected');点击功能中添加此行.dropdown dd ul li a

看看jsFiddle上的第10行,看看我的意思。