Javascript 通过Jquery动态更改菜单不工作
在某一点上,基于切换开关的状态,我需要一个菜单,您可以有多个选项或一个选项。这些菜单位于Jquery选项卡中。如果我创建了一个新选项卡,则菜单已正确填充。如果我试图交换现有选项卡中的菜单,那么它就不起作用。首先,右边没有复选框(或者在不应该的时候它仍然存在),菜单在我单击某个东西之前不会完全更新 下面是每次我的切换开关被翻转时调用的代码Javascript 通过Jquery动态更改菜单不工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,在某一点上,基于切换开关的状态,我需要一个菜单,您可以有多个选项或一个选项。这些菜单位于Jquery选项卡中。如果我创建了一个新选项卡,则菜单已正确填充。如果我试图交换现有选项卡中的菜单,那么它就不起作用。首先,右边没有复选框(或者在不应该的时候它仍然存在),菜单在我单击某个东西之前不会完全更新 下面是每次我的切换开关被翻转时调用的代码 function setPicker(){ var currentTab = globalCurrentTab; var exchange =
function setPicker(){
var currentTab = globalCurrentTab;
var exchange = currentTab.attr("exchange");
var symbol = currentTab.attr("symbol");
if($("#flip-min option:selected").html() == "Graph") { //no multiple attribute
$('#select-choice-'+symbol+'-'+exchange).empty();
$('#select-choice-'+symbol+'-'+exchange).removeAttr('multiple');
$('#select-choice-'+symbol+'-'+exchange).append('<option>Choose Fields</option>');
$('#select-choice-'+symbol+'-'+exchange).append('<option value=1>My option1</option>');
$('#select-choice-'+symbol+'-'+exchange).append('<option value=2>My option2</option>');
$('#select-choice-'+symbol+'-'+exchange).append('<option value=3>My option3</option>');
}
else { //yes multiple attribute
$('#select-choice-'+symbol+'-'+exchange).find('option').remove().end();
$('#select-choice-'+symbol+'-'+exchange).attr('multiple','multiple');
$('#select-choice-'+symbol+'-'+exchange).append('<option>Choose Fields</option>');
$('#select-choice-'+symbol+'-'+exchange).append('<option value=1>My option1</option>');
$('#select-choice-'+symbol+'-'+exchange).append('<option value=2>My option2</option>');
$('#select-choice-'+symbol+'-'+exchange).append('<option value=3>My option3</option>');
$('#select-choice-'+symbol+'-'+exchange).append('<option value=4>My option4</option>');
}
}
函数setPicker(){
var currentTab=全局currentTab;
风险值交换=当前选项卡属性(“交换”);
var symbol=currentTab.attr(“symbol”);
if($(“#flip min option:selected”).html()=“Graph”){//无多个属性
$('#选择选项-'+symbol+'-'+exchange).empty();
$('#选择选项-'+symbol+'-'+exchange).removeAttr('multiple');
$('#选择选项-'+symbol+'-'+exchange).append('Choose Fields');
$('#选择选项-'+symbol+'-'+exchange).append('My option1');
$('#选择选项-'+symbol+'-'+exchange).append('My option2');
$('#选择选项-'+symbol+'-'+exchange).append('My option3');
}
else{//yes多属性
$('#选择选项-'+symbol+'-'+exchange).find('option').remove().end();
$('#选择选项-'+symbol+'-'+exchange).attr('multiple','multiple');
$('#选择选项-'+symbol+'-'+exchange).append('Choose Fields');
$('#选择选项-'+symbol+'-'+exchange).append('My option1');
$('#选择选项-'+symbol+'-'+exchange).append('My option2');
$('#选择选项-'+symbol+'-'+exchange).append('My option3');
$('#选择选项-'+symbol+'-'+exchange).append('My option4');
}
}
为什么不直接使用单独的选择和隐藏不相关的内容呢?你能拿出一把小提琴来复制问题,这样我们就可以更仔细地看一下吗?顺便说一句,学习如何使用方法链接,这样你就不必在每一行重复$('#选择-'+symbol+'-'+exchange)
。而且你不需要使用.end()
如果您没有链接任何内容。@user3334690,这是一个非常好的建议,它的副作用是在切换选项卡时保留所选内容。如果你把它作为答案,我会记下来的。也要感谢其他人。