我做了一个快速的小提琴(不起作用),有点说明我所拥有的。我有一组选择并且可以添加更多。现在,这些会根据对象数组动态填充。我想要做的是,如果使用一个选项,我的选择不会使用相同的选项。例如select-1
,选项 1-2-3-5 as select-2
,但是当用户选择一个选项时,该选项需要在其他选择以及动态创建的选项上消失。这些也应该是可逆的。感谢你的帮助。小提琴
问问题
62 次
1 回答
1
我使用选择器稍微简化了这段代码。
在这里你只需要一个事件,你可以在你的选择器(或另一个多重匹配选择器)中使用逗号来满足你想要的一切:
$('#xAxis,#yAxis').on('change',function(){
setControls();
$('#main-controls select')
.each(function()
{
$('#main-controls select')
.not($(this))
.find('option[value=' + $(this).val() +']')
.remove();
});
});
策略是设置控件,然后找到具有我们刚刚选择的任何其他控件。如果我们可以hide()
选择,这会容易得多,但不幸的是,这不能跨浏览器工作;我们必须对remove()
他们。
修改中setControls
是仅将选项添加到尚未具有该选项的选择中。然后我们可以在我们想要将选择恢复到它们的原始选择时调用它(不会丢失当前选择)。
function setControls(){
$.each(series,function(k,v){
$('#xAxis,#yAxis')
.filter(':not(:has(option[value=' + k +']))')
.append($('<option>')
.attr({value: k})
.text(v.name));
});
}
于 2013-02-27T05:32:24.423 回答