我需要你的帮助,
如何修改javascript代码,以便之前的选择是谁将拥有css类"选择"关联它,在选择新值时删除?
这是一个快速的小提琴: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();
});
});
答案 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行,看看我的意思。